簡體   English   中英

如何始終在 linux (ubuntu) 中運行 python 腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM