我編寫了一個C程序並在我的Linux計算機上對其進行了測試。如何在服務器上啓動C程序以在後臺運行
我已經將它上傳到我的服務器,並希望它在整個運行期間作爲後臺進程運行。
如何啓動一個在關閉膩子後繼續運行的程序?
感謝您的幫助!
我編寫了一個C程序並在我的Linux計算機上對其進行了測試。如何在服務器上啓動C程序以在後臺運行
我已經將它上傳到我的服務器,並希望它在整個運行期間作爲後臺進程運行。
如何啓動一個在關閉膩子後繼續運行的程序?
感謝您的幫助!
你可以離開這個項目,通過增加&的號召
所以運行時,你一直在SSH之前執行這樣的代碼:
./mycode
你把它想:
./mycode &
如果您想要在後臺運行程序,您必須將'&'字符添加到命令中。
./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腳本。