mac下使用nohup執行程式以及執行定時任務
最近在思考佇列怎麼一直開啟,一直執行的問題,想到了可以寫一個死迴圈,不停的去執行
用nohup掛在就可以了
因為mac自帶PHP和apahce
只需要用root使用者啟動apache
sudo apachectl restart
PHP啟動方式為 php-fpm start 一般情況下都是預設啟動的;
接著要知道專案執行的目錄為 /Library/WebServer/Documents;
預設執行的是/Library/WebServer/Documents/index.php檔案;
我們可以先寫一個簡單的demo來測試是否一直開著程序在執;
直接在mac終端執行 sudo nohup php /Library/WebServer/Documents/index.php>>/Library/WebServer/Documents/hi.txt
檢視是否成功
cat /Library/WebServer/Documents/hi.txt
成功了的 ok
當然這個方式也可以用來執行佇列,定時任務之類的
比如這個tp5專案
直接執行
php 檔案目錄/think test即可
php /Library/WebServer/Documents/tp5/think test
如果是寫定時任務的話,可以根據情況來寫
分0-59
時0-12
天1-31
月1-12
周0-7
比如每天凌晨0:01執行date.php
1 0 * * * php /Library/WebServer/Documents/tp5/think date
每5分鐘執行Minutes.php
*/5 * * * * php /Library/WebServer/Documents/tp5/think minutes
每月第一天中午12點整執行Month.php
0 12 1 * * php /Library/WebServer/Documents/tp5/think month
如果要測試就可以把輸出寫到日誌或者寫到新的檔案裡面
*/2 * * * * php /Library/WebServer/Documents/tp5/think date >>/Library/WebServer/Documents/tp5/test.txt
這句話表示每兩分鐘伺服器執行以下php think date,且把輸出寫到test.txt檔案
經過測試這個也是成功的,前提是先要把定時任務寫到crontab中
使用root使用者來編寫定時任務
sudo -i 輸入密碼
crontab -e 編寫定時任務 按鍵盤i出現insert 表示可以寫入 寫好後按esc ,再按!wq既可強制儲存退出
crontab -l 檢視定時任務列表
cat /Library/WebServer/Documents/tp5/test.txt可以檢視是否寫入成功