Linux 如何在啟動時運行 python 腳本

Linux 如何在啟動時運行 python 腳本

Linux Ubuntu 14.04 在 ~/app/serve.py 中有一個腳本

需要在該資料夾下運行。在外殼中我可以做

> cd ~/app && python serve.py

它運行一個伺服器

需要在伺服器啟動時在背景運行它。嘗試在etc/rc.local(和etc/init.d/rc.local)中新增此命令,cd ~/app && python serve.py ~但它沒有啟動。

我究竟做錯了什麼?

答案1

不要新增 /etc/rc.local,而是cd ~/app && python serve.py嘗試新增整個路徑。您期望 init 程序以某種方式知道 ~ 是您的主目錄,但 init 以 root 身分啟動。因為 init 以 root 身分啟動,所以它會尋找/應用程式目錄而不是您的主目錄。透過使用主目錄的路徑來擺脫〜。

嘗試加入 /home/whitecolor/app/serve.py/etc/rc.local. (找到您的路徑目錄。)透過在腳本頂部新增來pwd刪除pythonserve.py 腳本前面的。 #!/usr/bin/python(輸入 awhich python查找路徑,以防未安裝在正常位置)

編輯:你確實說過“在後台運行”,但我錯過了。若要在背景執行命令,請&在命令後面新增 。因此,要將上面的命令設為後台: /home/whitecolor/app/serve.py & Init 通常不需要後台符號來啟動作業並在後台運行它。

DrDR 的出色建議是,在 cron 啟動中的命令之後不需要&像預設在後台運行的命令一樣進行相同的處理。

答案2

我從來沒有需要嘗試這個,但顯然腳本可以在系統啟動時透過 cron 運行,只需添加一行類似於下面以 @reboot 開頭的行。

#m  h  dom  mon  dow  command
1   *  *    *    *    someHourlyCommand
@reboot               python /home/<username>/app/serve.py

請注意,我稍微更改了命令以消除對目錄的 cd 操作。您的情況可能會有所不同,因此請做適合您的事情。

相關內容