linux中如何把程序放在後臺執行

2021-12-23 03:06:48 字數 1366 閱讀 1836

1樓:匿名使用者

一、在linux中,如果要讓程序在後臺執行,一般情況下,我們在命令後面加上&即可,實際上,這樣是將命令放入到一個作業佇列中了:$ ./test.

sh & [1] 17208 $ jobs -l [1]+ 17208 running ./test.sh & 二、對於已經在前臺執行的命令,也可以重新放到後臺執行,首先按ctrl+z暫停已經執行的程序,然後使用bg命令將停止的作業放到後臺執行:

$ ./test.sh [1]+ stopped .

/test.sh $ bg %1 [1]+ ./test.

sh & $ jobs -l [1]+ 22794 running ./test.sh & 三、但是如上方到後臺執行的程序,其父程序還是當前終端shell的程序,而一旦父程序退出,則會傳送hangup訊號給所有子程序,子程序收到hangup以後也會退出。

如果我們要在退出shell的時候繼續執行程序,則需要使用nohup忽略hangup訊號,或者setsid將將父程序設為init程序(程序號為1)$ echo $$ 21734 $ nohup ./test.sh & [1] 29016 $ ps -ef | grep test 515 29710 21734 0 11:

47 pts/12 00:00:00 /bin/sh .

/test.sh 515 29713 21734 0 11:47 pts/12 00:

00:00 grep test $ setsid ./test.

sh & [1] 409 $ ps -ef | grep test 515 410 1 0 11:49 ? 00:

00:00 /bin/sh ./test.

sh 515 413 21734 0 11:49 pts/12 00:00:

00 grep test 四、上面的試驗演示了使用nohup/setsid加上&使程序在後臺執行,同時不受當前shell退出的影響。那麼對於已經在後臺執行的程序,該怎麼辦呢?可以使用disown命令:

$ ./test.sh & [1] 2539 $ jobs -l [1]+ 2539 running .

/test.sh & $ disown -h %1 $ ps -

2樓:愚人陳

linux 技巧:讓程序在後臺可靠執行的幾種方法

在linux中如何結束由父程序產生的所有子程序

父程序未結束,子程序先結束,會產生殭屍程序。子程序在呼叫exit命令結束自己的生命的時候,其實它並沒有真正的被銷燬,而是留下一個稱為殭屍程序 zombie 的資料結構 系統呼叫 exit,它的作用是使程序退出,但也僅僅限於將一個正常的程序變成一個殭屍程序,並不能將其完全銷燬 即使是root身份kil...

linux 如何修改使用者的密碼,linux中如何修改指定使用者的密碼

1 首先,要用crt軟體連線linux系統。2 首選,確認是用root使用者登入系統的。輸入命令 id 檢視登入使用者資訊。3 若修改root自己的密碼,直接輸入 passwd 輸入兩遍,新密碼即可。4 若修改其他使用者,如oracle 的密碼,可直接輸入passwd oracle.輸入兩遍性新密碼...

如何把本地的檔案上傳到linux

本地檔案上傳到linux伺服器的幾種方法 有兩種方法上傳程式到伺服器裡面。如果是win系統伺服器,那麼開啟遠端桌面,從本地電腦複製檔案,到遠端桌面伺服器裡面,貼上檔案,就可以了。如果有ip地址,ftp賬號密碼,也可以用 ftp軟體上傳。linux伺服器的話,就是直接用ftp軟體上傳檔案了。怎樣上傳檔...