[进程]守护进程
這兩天碰到一個問題,應用程序運行一天,eMMC被塞滿了,查看/var/log下面發現是daemon.log和sys.log兩個log日志各增加到1.2G左右,詢問參與應用程序開發的同事后了解到他們并沒與像某個log日志中填日志。查看了日志的內容都是dhcpcd: can....set_mtu....
后來在/etc/dhcpcd.conf中添加denyinterfaces can0 can1 can2解決了這個問題,取消dhcpcd這個守護進程去監聽can口
于是順道了解了Linux日志結構,分享如下的日志
轉自:http://www.cnblogs.com/z-sm/p/5675051.html
另外/var/log下20個Linux日志文件詳解
http://h2appy.blog.51cto.com/609721/781281/
一、普通進程與后臺進程
默認情況下,進程是在前臺運行的,這時就把shell給占據了,我們無法進行其它操作。對于那些沒有交互的進程,很多時候,我們希望將其在后臺啟動,可以在啟動參數的時候加一個'&'實現這個目的:
zsm@wilburUbun:~/application/zookeeper-3.4.8/bin$ ./zkServer.sh start & [1] 21304 zsm@wilburUbun:~/application/zookeeper-3.4.8/bin$ ZooKeeper JMX enabled by default Using config: /home/zsm/application/zookeeper-3.4.8/bin/../conf/zoo.cfg Starting zookeeper ... STARTED[1]+ Done ./zkServer.sh start進程切換到后臺的時候,我們把它稱為job。切換到后臺時會輸出相關job信息,以前面的輸出為[1] 21304例:[1]表示job, ID是21304表示進程ID是21304。 切換到后臺的進程,仍然可以用ps命令查看,或通過jobs命令只查看所有job(后臺進程)
二、守護進程
如果一個進程永遠都是以后臺方式啟動,并且不能受到Shell退出影響而退出,一個正統的做法是將其創建為守護進程(daemon)。守護進程值得是系統長期運行的后臺進程,類似Windows服務。守護進程信息通過ps –a無法查看到,需要用到–x參數(ps -aux),當使用這條命令的時候,往往還附上-j參數以查看作業控制信息,其中TPGID一欄為-1就是守護進程。
三、守護進程與后臺進程
后臺進程的文件描述符也是繼承于父進程,例如shell,所以它也可以在當前終端下顯示輸出數據。但是daemon進程自己變成了進程組長,其文件描述符號和控制終端沒有關聯,是控制臺無關的。
基本上任何一個程序都可以后臺運行,但守護進程是具有特殊要求的程序,比如要脫離自己的父進程,成為自己的會話組長等,這些要在代碼中顯式地寫出來換句話說,守護進程肯定是后臺進程,但反之不成立。?
四、進程查看
- 守護進程:ps -x
- 普通進程:ps 或 帶參數的其他ps命令
- 后臺進程:jobs 或 前面的上述的那些命令
五、跟系統任務相關的幾個命令
fg、bg、jobs、&、ctrl+z
1.?&?最經常被用到
???這個用在一個命令的最后,可以把這個命令放到后臺執行
2.?ctrl?+?z
? ?可以將一個正在前臺執行的命令放到后臺,并且暫停
3.?jobs
?????查看當前有多少在后臺運行的命令
4.?fg
?????將后臺中的命令調至前臺繼續運行 ?
?如果后臺中有多個命令,可以用?fg?%jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)
5.?bg?將一個在后臺暫停的命令,變成繼續執行???
如果后臺中有多個命令,可以用bg?%jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)
1.?jobs列舉出后臺作業信息。([作業號]???運行狀態???作業名稱)
2.?ctrl+z?將任務放到后臺去,并暫停;
3.?bg??<%int>?將后臺任務喚醒,在后臺運行;
4.?fg???<%int>?將后任務的程序放到前臺;
?
轉載于:https://www.cnblogs.com/aaronLinux/p/6839708.html
總結
- 上一篇: border-radius圆角兼容方案
- 下一篇: 自学it18大数据笔记-第三阶段Scal