Linux 程序管理
阿新 • • 發佈:2020-07-10
程序管理
程序的生命週期:
主程序pid收到資訊需要處理資料的時候一般會讓子程序去處理,子程序ppid處理完了之後再去把返回的結果交給主程序,如果在這個過程中主程序死了,那麼子程序就會變成殭屍程序;子程序掛了對主程序沒有影響。
監控程序的命令ps
ps -aux a # all檢視所有終端程序 x # 檢視所有的非終端程序 u # user 這個程序啟動的使用者有哪些 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 125304 3832 ? Ss 06:23 0:02 /usr/lib/systemd/systemd --switched- root 2 0.0 0.0 0 0 ? S 06:23 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 06:23 0:02 [ksoftirqd/0] USER 啟動該程序的使用者 PID 程序的pid號 %CPU 佔用cpu的百分比 %MEM 佔用記憶體的百分比 VSZ 虛擬記憶體 (程序佔用的虛擬記憶體) RSS 真實實體記憶體 (程序佔用真實的記憶體空間) TTY 執行的終端 ? 核心執行的終端 tty1 機器執行的終端 pts/0 遠端連線的終端 STAT 程序的狀態 D 無法終端的休眠狀態(和i/o有關的程序) R 正在執行的程式 S 休眠狀態的 T 暫停或者被追蹤的狀態 W 進入交換記憶體 X 死掉的程序 Z 殭屍程序 < 優先順序高的程序 N 優先順序低的程序 s 父程序還有子程序 l 以執行緒方式執行 L 有些頁被鎖進記憶體 | 多程序的 + 正在執行的程式 START 程序被觸發啟動的時間 TIME 該程序實際使用cpu的執行時間 COMMAND 程序的啟動命令是 --sort ps aux --sort=%cpu USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 一種排序方法,sort=的內容必須是命令結果有的。 + - 可以順序或者倒序 [root@fpm_nginx ~]# ps axo user,pid,%cpu,%mem,command 檢視程序額外的命令 pgrep [root@fpm_nginx ~]# pgrep nginx pgrep -l -a pidof [root@fpm_nginx ~]# pidof nginx [root@fpm_nginx ~]# yum -y install psmisc pstree 命令,可以檢視子程序 grep過濾程序的時候不顯示grep ps -ef | grep [n]ginx
kill-訊號管理
kill pkill killall kill -l # 檢視訊號 [root@fpm_nginx ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX 常見訊號列表 數字訊號 訊號別名 作用 1 HUP 掛起訊號,往往可以讓程序重新配置 kill -s HUP kill -1 2 INT 中斷訊號,起到結束作用,和ctrl+c的作用一樣 kill -s INT kill -2 3 QUIT 讓程序退出,結果是程序退出 kill -s QUIT kill -3 9 KILL 直接結束程序,不能被程序捕獲 kill -s KILL kill -9 15 TERM 程序終止,這是預設訊號 kill -15 kill -s TERM kill 18 CONT 被暫停的程序將繼續恢復執行 19 STOP 暫停程序 20 TSTP 使用者停止請求,作用類似於ctrl+z把程序放到後臺並暫停
程序的優先順序
數值越小的優先順序越高
# nice
-n # 指定優先順序,是在程式啟動的時候,指定優先順序
[root@qls ~]# nice -n -20 tail -f /var/log/messages
# renice
[root@qls ~]# ps axo nice,command|grep sshd
[root@qls ~]# renice 19 9962
後臺程序管理
& # 把程序放在後臺執行 ctrl + z # 暫停 bg: # 放在後臺 fg: # 調出 screen # 新建後臺的程序 [root@fpm_nginx ~]# screen # 指定後臺程序的名稱 [root@fpm_nginx ~]# screen -S ping ctrl+ad 返回到終端 # 檢視後臺的程序 [root@fpm_nginx ~]# screen -ls # 檢視後臺程序 [root@fpm_nginx ~]# screen -r 20068 nohup [root@fpm_nginx ~]# nohup sh a.sh &