linux定時執行php啟動任務腳本(步驟分析)

最近工作上遇到需要時不時重啟php服務的情況,于是乎想到利用定時執行腳本的方式重啟php進程,于是利用linux寫個執行腳本,步驟如下:

第一步:創建一個定時腳本文件cron.sh(文件名隨意以.sh結尾)。

參考代碼如下(log.txt是個日志文件方便查看是否有輸出內容):

echo?"supervisorctl?restart..."?>>?/var/www/html/log.txt start_time=$(date) echo?$start_time?>>?/var/www/html/log.txt echo?>>?/var/www/html/log.txt supervisorctl?restart?all end_time=$(date) echo?"supervisorctl?end"?>>?/var/www/html/log.txt echo?$end_time?>>?/var/www/html/log.txt echo?>>?/var/www/html/log.txt

我這邊利用supervisorctl來管理php進程(關于supervisorctl的使用可以查看官方文檔),當然也可以利用其他方式。

這里舉個例子來簡單說明supervisorctl的使用。

立即學習PHP免費學習筆記(深入)”;

首先需要安裝supervisorctl,在終端下執行 yum install -y supervisor,

supervisorct默認安裝在/etc/supervisor目錄下;

完成后,在/etc/supervisor 路徑下有個配置文件supervisord.conf,打開后在最后有個[include]后配置一下files如下:

files?=?/etc/supervisor/conf.d/*.conf

然后就可以在/etc/supervisor/conf.d目錄下創建自己的配置文件;

例如創建文件test.conf(我這邊是php laravel框架執行的一個消費任務隊列)文件內容配置如下:

[program:rabbitmq-comsumer-1] process_name=%(program_name)s_1 command=php?/var/www/html/app/artisan?rabbitmq:consumer?1 autostart=true autorestart=true user=root numprocs=1 redirect_stderr=true stdout_logfile=/var/www/html/app/storage/logs/rabbitmq-comsumer-log-1.log

第二步:其次編寫定時任務內容,在終端控制臺輸入 vim /etc/crontab 回車;在文件里寫入如下代碼:

0?*/2?*?*?*?root??/var/www/html/cron.sh

注:0 */2 * * *(這是定時任務執行語法,我這邊是每2小時執行,也就是0:00,2:00,…自動執行;相關語法請百度查閱)

第三步:保存文件,然后使其生效(這一步很重要!)執行如下命令:

crontab?/ect/crontab

最后可以使用以下命令查看修改后的結果,如果看到出現 0 */2 * * * root? /var/www/html/cron.sh 則說明已經生效:

crontab?-l

總結:

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享