2016-11-03 43 views
1

我必须运行PHP脚本作为服务。它也应该在启动时运行(当系统崩溃/ rebbot发生时)。我尝试了一年运行一次的cron作业。一旦cron触发了这个过程,我在运行过程中将其注释掉了。但系统重启过程停止后。FreeBSD上的PHP脚本启动

我试图this也不过关终端处理后得到停止。另外我不确定它会在启动时运行吗?以下是我的PHP脚本。

<?php 
    while (true) { 
     $command = "php $cwd\artisan synchronizedb --ptype=2"; 
     exec($command); 
    } 
?> 
+0

[Run php script as daemon process]可能重复(http://stackoverflow.com/questions/2036654/run-php-script-as-daemon-process) – Dekel

+0

@Dekel它不会在系统崩溃时重新启动。所以我希望它在系统启动时重启。 –

+0

您可能想要[阅读关于FreeBSD启动脚本的工作原理](https://www.freebsd.org/cgi/man.cgi?query=rc&sektion=8) –

回答

1

FreeBSD有一个非常好的工具,称为daemon你可以只创建一个简单的脚本这样

#!/bin/sh 

echo "starting XYZ" 
daemon -r /path/to/your/script 

-r选择,监督,如果它已经终止重新启动程序。

以后你有一些选择

  1. 添加脚本rc.local,编辑文件/etc/rc.local

  2. 创建仅运行在重新启动一个cron:

    @reboot root /path/to/your/script 
    
  3. 把你的脚本/usr/local/etc/rc.d只是chmod + x

这个cron @reboot可能是最简单的一个。