首頁  >  文章  >  運維  >  linux定時執行php啟動任務腳本(步驟分析)

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

铁手
铁手原創
2022-08-12 20:53:451648瀏覽

最近工作上遇到需要時不時重啟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的使用。

首先需要安裝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

總結:以上就是利用linux定時執行任務腳本來重啟php服務,只要是不要求立即執行,這樣就不用人工手動去執行指令,一勞永逸。

更多精彩內容請關注php中文網其它相關文章!

以上是linux定時執行php啟動任務腳本(步驟分析)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn