Linux

以特定使用者身份在啟動時執行 Python 腳本

  • September 16, 2012

我想以特定使用者身份在啟動時執行 python 腳本。

該腳本是一個伺服器(偵聽套接字,服務請求等),應該在後台執行,任何輸出最好通過管道傳輸到日誌文件。

我目前的方法是在 rc.local 的末尾添加一個條目,如下所示:

su -l usr -c 'script.py arg1 arg2 &> logfile.log &'

問題:在腳本中我有幾個列印語句。它們永遠不會出現在日誌文件中。我試過了

su -l usr -c 'script.py arg1 arg2 &> logfile.log &'

su -l usr -c 'script.py arg arg &> logfile.log &' &> secondLogfile.log &

su -l usr -c 'script.py arg arg &> logfile.log &'

su usr -c 'script.py arg arg &> logfile.log &'

我覺得我缺少一些基本的東西。也許我正在以完全錯誤的方式去做。

系統是 Fedora 15,腳本是 Python3,並以使用者身份從命令行正常執行。使用者對我希望輸出重定向到的文件夾具有寫入權限。(我通過製作文件夾 777 排除了它)。

我嘗試讓 python 腳本作為 Systemd 服務執行,但是我的腳本無法獲取套接字進行監聽時遇到了問題。(如果我在啟動時啟用了 systemd 服務,則會引發關於正在使用的套接字的作業系統錯誤,而如果我在啟動後執行 systemctl start script.service 一切正常)。

如何在啟動時以使用者身份啟動 python 腳本來獲取套接字?

@Reboot 行就像 crontab 中的魅力一樣。Freetx 的答案對我不起作用(我嘗試了完全類似的東西,但沒有骰子 :-(

這對我有用:

su -l usr -c “p​​ython script.py arg1 arg2 > logfile.txt &”

我相信前面的 & 正在將“python script.py”過早地推到後台。

引用自:https://serverfault.com/questions/420237