2016-08-15 63 views
0

我編寫了一個C程序並在我的Linux計算機上對其進行了測試。如何在服務器上啓動C程序以在後臺運行

我已經將它上傳到我的服務器,並希望它在整個運行期間作爲後臺進程運行。

如何啓動一個在關閉膩子後繼續運行的程序?

感謝您的幫助!

回答

1

你可以離開這個項目,通過增加&的號召

所以運行時,你一直在SSH之前執行這樣的代碼:

./mycode 

你把它想:

./mycode & 
1

如果您想要在後臺運行程序,您必須將'&'字符添加到命令中。

./program & 

但是該過程將與當前tty關聯。如果關閉當前的tty(在你的情況下爲SSH會話),SIGHUP信號被髮送到與tty相關的所有進程,導致它們完成。您可以使用ps命令查看關聯的tty到一個進程。

不對命令可用於標記作業,以便SELLUP信號不發送給它們,如果父shell收到它。在關閉當前tty之前,您可以編寫:

disown %jobID 

當您在後臺運行程序時,可以看到括號中的jobID。您也可以通過作業命令查看jobID。

您可以直接運行該命令,以便SIGHUP信號不會發送給他。爲此,您可以使用nohup命令。

nohup ./program & 

避免用SIGHUP信號結束程序的另一種方法是在程序中捕獲該信號。在C程序中,您可以使用信號做到這一點 signal.h中的函數

但是,如果要將程序作爲守護程序或服務器運行,最好編寫Systemd服務或System V init腳本。

相關問題