最近工作上遇到需要時不時重啟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中文網其他相關文章!