后臺運行的任務怎么調出來 后臺運行

一、后臺運行1.nohup用途:不掛斷地運行命令 。
語法:nohup Command [ Arg … ] [ & ]
無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 文件中 。如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中 。如果沒有文件能創建或打開以用于追加,那么 Command 參數指定的命令不可調用 。
退出狀態:該命令返回下列出口值:126 可以查找但不能調用 Command 參數指定的命令 。127 nohup 命令發生錯誤或不能查找由 Command 參數指定的命令 。否則,nohup 命令的退出狀態是 Command 參數指定命令的退出狀態 。

后臺運行的任務怎么調出來  后臺運行

文章插圖
2.&用途:在后臺運行
一般兩個一起用
nohup command &
eg:
nohup ./program /etc/chat.js >> /tmp/output.log 2>&1 &只輸出錯誤信息到日志文件:
nohup ./program >/dev/null 2>log &不輸出日志文件的 *** :
nohup ./program >/dev/null 2>&1 &3. Linux的重定向0:表示標準輸入;1:標準輸出,在一般使用時,默認的是標準輸出;2:表示錯誤信息輸出;./program >/dev/null 2>log表示將program的錯誤信息輸出到log文件,其他信息丟進/dev/null 。
./program >/dev/null 2>&1表示將program的錯誤輸出與標準輸出重定向到/dev/null,也就是屏蔽任何輸出 。顯式寫法就是./program 1>/dev/null 2>&1.
執行順序是從左到右依次執行重定向的命令,下面來分析兩個案例
>/dev/null 2>&1
標準輸出重定向到null,所以標準輸出無內容 。錯誤輸出到標準輸出,由于前面標準輸出已經重定向到null,所以也無任何輸出 。2>&1 >/dev/null
錯誤輸出重定向到標準輸出,此時標準輸出是正常輸出的,所以會輸出錯誤內容.標準輸出重定向到null,此時標準輸出不輸出任何內容.
二、查看運行的后臺進程(1)jobs -ljobs命令只看當前終端生效的,關閉終端后,在另一個終端jobs已經無法看到后臺跑得程序了,此時利用ps(進程查看命令)
[root@localhost test]# jobs -l[1]- 運行中nohup ./program $1 $2 $3 &(工作目錄:/home/test)[2]+ 運行中nohup ./BaiduyunPCS $1 $2 $3 &(2)ps -auxps -aux|grep chat.jsa:顯示所有程序u:以用戶為主的格式來顯示x:顯示所有程序,不以終端機來區分
注:用ps -aux | grep查找進程很方便,最后一行總是會grep自己用grep -v參數可以將grep命令排除掉
ps -aux|grep chat.js| grep -v grep
再用awk提取一下進程ID ps -aux|grep chat.js| grep -v grep | awk '{print $2}'
(3)如果某個進程起不來,可能是某個端口被占用查看使用某端口的進程lsof -i:8090netstat -ap|grep 8090
(4)終止后臺運行的進程kill -9 進程號
kill 命令(1)通過jobs命令查看jobnum,然后執行 kill %jobnum(2)通過ps命令查看進程號PID,然后執行 kill %PID如果是前臺進程的話,直接執行 Ctrl+c 就可以終止了
后臺運行的任務怎么調出來  后臺運行

文章插圖
三、前后臺進程的切換與控制(1)fg命令將后臺中的命令調至前臺繼續運行如果后臺中有多個命令,可以先用jobs查看jobnum,然后用 fg %jobnum 將選中的命令調出 。zsh需要在數字前面加%,bash則直接用數字.
(2)Ctrl + z命令將一個正在前臺執行的命令放到后臺,并且處于暫停狀態
(3)bg命令【后臺運行的任務怎么調出來后臺運行】將一個在后臺暫停的命令,變成在后臺繼續執行如果后臺中有多個命令,可以先用jobs查看jobnum,然后用 bg %jobnum 將選中的命令調出繼續執行 。zsh需要在數字前面加%,bash則直接用數字.
[root@localhost test]# jobs[1]- 運行中nohup ./program $1 $2 $3 &(工作目錄:/home/test)[2]+ 運行中nohup ./BaiduyunPCS $1 $2 $3 &// 使用fg 后,將任務2調至前臺運行.//fg %2[root@localhost test]# fg 2nohup ./BaiduyunPCS $1 $2 $3^Z// 使用ctrl+Z后,將任務2放置到后臺,并暫停[2]+ 已停止nohup ./BaiduyunPCS $1 $2 $3// 使用bg 后,激活任務2的運行//bg %2[root@localhost test]# bg 2[2]+ nohup ./BaiduyunPCS $1 $2 $3 &

    推薦閱讀