我是python的新手,對Linux有很基本的瞭解。在Ubuntu上啓動時啓動python腳本
我需要在啓動時在Ubuntu 14.04.3服務器上啓動腳本。
唯一的是,腳本是一個監控工具,應該一直運行,所以我不能只是一個定期的cron調用。
,我發現這個起初:running a python script with cron
我試圖在crontab中添加此:
@reboot python /path/to/script.py &
而且也是這樣:
@reboot /path/to/script.py &
,但它不似乎工作。
我也看到了這一點:How to make a python script run like a service or daemon in linux
主要答案是的cron或Python代碼的變化。
所以我的問題是:有沒有另一種方式來在啓動時運行我的腳本,並讓它運行「永久」而無需更改代碼?
我向你保證,如果我不想改變代碼,它不是懶惰,但我會如果它是唯一的選擇。
其他信息(不知道是否有必要),我運行Windows並通過PuTTY訪問服務器。 的Python的版本是2.7
UPDATE
這裏是cron的日誌:
Nov 27 15:57:03 trustyovh cron[760]: (CRON) INFO (pidfile fd = 3)
Nov 27 15:57:03 trustyovh cron[798]: (CRON) STARTUP (fork ok)
Nov 27 15:57:03 trustyovh cron[798]: (CRON) INFO (Running @reboot jobs)
Nov 27 15:57:03 trustyovh CRON[807]: (administrateur) CMD (/home/administrateur/scuMonitor/main.py &)
Nov 27 15:57:03 trustyovh CRON[800]: (CRON) info (No MTA installed, discarding output)
Nov 27 16:09:01 trustyovh CRON[1792]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime))
這裏是crontab中:
@reboot /home/administrateur/scuMonitor/main.py &
更新2
嗯,它實際上與cron集合重新啓動,但是,我的腳本並沒有把他的日誌放在我期望的位置(我不理解Linux上的路徑是如何工作的)。
感謝所有人的回答!
詳細說明「但它似乎不工作。」 - 你有沒有檢查過,如果cron發送給你任何錯誤?檢查過cron日誌嗎? 另外,從cron條目扔掉&符。 –
@MichałF不,我沒有那樣做,我在哪裏可以找到日誌和錯誤? – erjon
它可能是/ var/log/syslog,或者如果您的系統配置不同,它可能是專用於cron的文件。試試'sudo grep -R CRON/var/log |頭'來檢查哪些日誌文件包含來自CRON的條目。 –