1. 程式人生 > >mac下使用nohup執行程式以及執行定時任務

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可以檢視是否寫入成功