我的工作依賴MySQL。所以我希望我的工作可以在 MySQL 之後啟動。
我讀了新貴食譜我發現start on
可以自動開始工作。
start on started mysql
它有效。但我不希望mysql啟動後影響我的工作。當我停止工作時,它將透過重新啟動 mysql 來重新啟動。如何避免這種情況?
答案1
在資料夾中建立一個鎖定檔案/tmp/
以追蹤您的作業已運行。這裡有一個例子:
建立這兩個 upstart 作業設定檔:
/etc/init/joba.conf
# job A start on local-filesystems stop on runlevel[016] script /bin/echo job-A started >> /tmp/myjobs.log exec sleep 5 end script
/etc/init/jobb.conf
# job B triggered after A start on started joba script /bin/echo job-B started >> /tmp/myjobs.log if ! [ -f /tmp/jobb.lock ] then /bin/echo " do job-B tasks" >> /tmp/myjobs.log /bin/touch /tmp/jobb.lock else /bin/echo " bypass job-B tasks" >> /tmp/myjobs.log fi exec sleep 5 end script
重啟
- 檢查
cat /tmp/myjobs.log
或sudo tail -f /tmp/myjobs.log
在另一個視窗中開啟。 - 再次嘗試執行 job-A
sudo start joba
檢查
/tmp/myjobs.log
,參見旁路註記:job-A started job-B started do job-B tasks job-B started bypass job-B tasks job-A started job-B started job-A started bypass job-B tasks
筆記:對於每次運行,我們有 3 行。這裡的行排序並不重要。stdout
緩衝問題,與暴發戶無關。作業按正確的順序運行。