[英]How to run a python script always in linux (ubuntu)
我有一個使用 ssh 連接的 linux 系統服務器。 現在我有一個 python 腳本。我希望它始終運行。我使用這個公共
ubuntu:~$ nohup python3 -u ~/test/main.py > test.outs 2>&1 &
但是我退出ssh連接,那個python腳本同時退出。 我該怎么辦?
您可以定期運行腳本/檢查它是否使用 cronjob 運行,這也將允許您在系統啟動時運行腳本,以便在重新啟動時繼續運行。
這里有一些建議; https://superuser.com/questions/448445/run-bash-script-in-background-and-exit-terminal
雖然這也表明 nohub 應該在您退出會話時停止被殺死的子進程。 您如何知道腳本在退出時停止運行?
有多種方法可以做到這一點,它們取決於您的用例。
一種方法是在您的服務器上安裝“屏幕”。
sudo apt-get install screen
現在,無論何時您使用 ssh 連接到您的服務器,您都可以輸入“screen”,然后在那里開始您的代碼。 (第一次這樣做時,你會在屏幕上看到一個解釋,按空格鍵跳過它)
執行此代碼后,您鍵入 Ctrl + A,然后按 Ctrl + D。這將“分離”屏幕。 您現在可以斷開連接,此“屏幕”將保持存在並且代碼仍將運行。
重新連接時,您可能希望返回此屏幕。 類型
screen -ls
以獲得您正在運行的屏幕的概覽。 (在這種情況下,將只有一個)它們可以通過它們全部開頭的 5 個數字來識別。 因此,通過鍵入返回此屏幕
screen -r XXXXX
現在你回來了。 此處的更多信息:
https://www.howtogeek.com/662422/how-to-use-linuxs-screen-command/
同樣,我不知道你的腳本是做什么的,所以它可能不是最好的解決方案。
您可以使用屏幕
安裝后,您可以通過將screen
發送到控制台來啟動屏幕,然后運行您的腳本。 當您鍵入CTRL+A+D
,屏幕將消失,您可以退出 ssh 連接。
如果重新打開之前打開的屏幕,只需鍵入screen -r
如果您有多個屏幕實例,當您鍵入screen -r
時,應用程序將顯示屏幕數量。 你只需要找到屏幕的 id 並輸入screen -r id
ie screen -r 2643
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.