Centos

cronjob 是否可以在 MySQL 啟動之前啟動?

  • April 24, 2015

我在 CentOS 7 上,如果我輸入:

* * * * * python script.py

有用。

如果我放:

@reboot python script.py

然後它說它無法連接到 MySQL。

如果我也從命令行執行它,它可以工作。

如果我這樣做,該腳本才不起作用@reboot。cronjob 是否可能在 MySQL 之前啟動?

是的,這是可能的(而且很有可能)。

一個粗略的解決方案是指示您的腳本休眠一段時間。例如,如下更改您的 cron 行:

* * * * * sleep 60; python script.py

這將等待 60 秒,這應該讓 MySQL 有時間啟動。

如果您必須絕對確定 mysql 程序在您的腳本執行之前啟動,您可以編寫一個這樣的 shell 包裝腳本(讓我們稱之為custom_wrapper):

#!/bin/bash
雖然是真的;做
執行=`ps 斧頭 | grep mysql`;
如果 [ $running -eq 0 ]; 然後
蟒蛇腳本.py
退出 $?
是
睡覺 5
完畢

然後,設置為執行檔 ( chmod +x custom_wrapper) 並修改您的 cron 行,如下所示: * * * * * custom_wrapper

自定義包裝腳本等待 MySQL 程序啟動,然後執行您的 python 腳本並退出。

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