最近工作上遇到需要時(shí)不時(shí)重啟php服務(wù)的情況,于是乎想到利用定時(shí)執(zhí)行腳本的方式重啟php進(jìn)程,于是利用linux寫個(gè)執(zhí)行腳本,步驟如下:
第一步:創(chuàng)建一個(gè)定時(shí)腳本文件cron.sh(文件名隨意以.sh結(jié)尾)。
參考代碼如下(log.txt是個(gè)日志文件方便查看是否有輸出內(nèi)容):
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進(jìn)程(關(guān)于supervisorctl的使用可以查看官方文檔),當(dāng)然也可以利用其他方式。
這里舉個(gè)例子來簡(jiǎn)單說明supervisorctl的使用。
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
首先需要安裝supervisorctl,在終端下執(zhí)行 yum install -y supervisor,
supervisorct默認(rèn)安裝在/etc/supervisor目錄下;
完成后,在/etc/supervisor 路徑下有個(gè)配置文件supervisord.conf,打開后在最后有個(gè)[include]后配置一下files如下:
files?=?/etc/supervisor/conf.d/*.conf
然后就可以在/etc/supervisor/conf.d目錄下創(chuàng)建自己的配置文件;
例如創(chuàng)建文件test.conf(我這邊是php laravel框架執(zhí)行的一個(gè)消費(fèi)任務(wù)隊(duì)列)文件內(nèi)容配置如下:
[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
第二步:其次編寫定時(shí)任務(wù)內(nèi)容,在終端控制臺(tái)輸入 vim /etc/crontab 回車;在文件里寫入如下代碼:
0?*/2?*?*?*?root??/var/www/html/cron.sh
注:0 */2 * * *(這是定時(shí)任務(wù)執(zhí)行語法,我這邊是每2小時(shí)執(zhí)行,也就是0:00,2:00,…自動(dòng)執(zhí)行;相關(guān)語法請(qǐng)百度查閱)
第三步:保存文件,然后使其生效(這一步很重要!)執(zhí)行如下命令:
crontab?/ect/crontab
最后可以使用以下命令查看修改后的結(jié)果,如果看到出現(xiàn) 0 */2 * * * root? /var/www/html/cron.sh 則說明已經(jīng)生效:
crontab?-l
總結(jié):