回答
作爲nohup
的替代方案,您可以在終端複用器內部運行遠程應用程序,如GNU screen
或tmux
。
使用這些工具可以輕鬆地重新連接到其他主機的會話,這意味着您可以在離開工作之前進行長時間的構建或下載,並在您回家時檢查其狀態。例如。我發現這對於在非常遠距離(不同國家)的服務器進行開發工作時非常有用,它與我和他們之間的不可靠連接,如果連接斷開,我可以簡單地重新連接並繼續運行而不會丟失任何狀態。
是;您可以使用the nohup
command來吞下當掛斷SSH會話時發送到程序的HUP(「掛斷」)信號。或者,如果您自己編寫服務器,則可以將其編碼爲register a handler作爲HUP信號,並將其吞入程序中(而不是使用外部nohup
程序執行相同操作)。
作爲nohup
,screen
等的替代方案,您可以修改您的服務器以調用daemon
將其從終端上分離。這是爲linux編寫服務的慣用方法。請參閱daemon(3)
。
除了對方回覆,你可以開始測試服務器通batch(或at
),但作爲Brian answered你應該叫daemon
而且你可以在-f
選項傳遞給ssh
謝謝。你把'-f'選項的一天保存到了ssh。 – 2015-02-02 14:12:45
如果」重新連接到systemd的Linux發行版,您可以使用systemd-run
在後臺啓動進程(systemd的術語「瞬時服務」)。例如,假設你要ping的東西在後臺:
systemd-run --unit=pinger ping 10.8.178.3
你會systemd在剛剛運行的進程與nohup
得到的好處是,systemd將跟蹤過程和它的孩子,保留日誌,記退出代碼,並允許你乾淨地殺死進程和所有它的孩子。實例:
見的狀態和輸出的最後行:
systemctl status pinger
流輸出:
journalctl -xfu pinger
殺:
systemctl kill pinger
- 1. 試圖通過SSH持久化進程失敗
- 2. 如何通過SSH啓動進程,保持運行?
- 3. 通過SSH進行SSH(或如何通過SSH「通過SSH進行通信」)
- 4. 通過ssh進行序列化連接
- 5. 通過SSH遠程運行PHP
- 6. 通過SSH遠程運行腳本
- 7. 通過ssh遠程運行命令
- 8. 通過SSH運行web應用程序
- 9. pexpect - 通過ssh運行script.sh
- 10. 通過域封裝的持久性,還是通過Repository持久化?
- 11. 通過Ruby持久化環境變量
- 12. 如何通過JPA持久化java.util.Set?
- 13. 春進口運行Hibernate持久兩次
- 14. 通過SSH遠程運行本地腳本,同時通過arguements
- 15. 通過SSH運行遠程命令,但在後臺運行
- 16. 如何使運行通知的安卓服務持久化
- 17. 通過重新執行的Python對象持久化
- 18. 如何通過獲取持久化單元編程
- 19. 持久化策略進行單機桌面Java應用程序
- 20. 如何通過SSH運行PHP腳本並在退出後保持運行
- 21. SSH持久連接超時
- 22. 通過SSH進行MySQL遠程訪問通道錯誤
- 23. 如何在asp.net下異步運行持久進程?
- 24. GWT應用程序中使用SSH通過SSH進行通信(使用RPC)
- 25. 通過ssh遠程運行通訊的選項
- 26. 通過SSH隧道進行MySQL複製
- 27. 通過Perl進行SSH登錄
- 28. 無法通過SSH進行git獲取
- 29. 通過PHP進行SSH會話
- 30. Jenkins通過ssh殺死進程(Tomcat)
示例:使用ssh和屏幕創建持久的終端會話可以從任何地方訪問http://bit.ly/1ewxKKv – Jon 2014-04-11 16:54:12