通常我们需要对服务器的某项服务进行监控,确保该服务正常运行。一般使用linux的定时任务就可以实现,但是定时任务的最小执行时间间隔为秒,往往不能满足我们的要求。这个时候Swoole的毫秒定时器应该就出来了。监控代码/dev/null|grep".自我::端口。“|grepLISTEN|wc-l”;$result=shell_exec($shell);if($result!=1){//发送警报服务电子邮件消息///todoechodate("YmdH:i:s")."error".PHP_EOL;}else{echodate("YmdH:i:s")."succss".PHP_EOL;}}}//nohupswoole_timer_tick(2000,function($timer_id){(newServer())->port();echo"time-start".PHP_EOL;});运行注意以下命令需要绝对路径nohup/usr/bin/php/home/vagrant/code/swoole/script/bin/jian.php>/home/vagrant/code/swoole/script/bin/log.txt&SupplementaryNotes&当一个作业在前台运行时,终端被作业占用;后面可以跟命令Add&来实现后台运行。例如:shtest.sh&适合后台运行的命令有find、耗时排序和一些shell脚本。在后台运行作业时要小心:不要在后台运行需要用户交互的命令,因为你的机器只会坐在那里等待。但是,在后台运行的作业也会将结果输出到屏幕上,干扰您的工作。如果在后台运行的作业产生大量输出,最好使用以下方法将其输出重定向到一个文件:command>out.file2>&1&这样,所有的标准输出和错误输出都会被重定向到名为out.file的文件。nohup使用&命令后,job被提交到后台运行,当前console不被占用,但是一旦当前console关闭(登出账号时),job就会停止运行。nohup命令可以在你退出账号后继续运行相应的进程。nohup表示不挂断(nohangup)。命令的一般形式是:nohup命令&如果使用nohup命令提交作业,则默认情况下作业的所有输出都重定向到一个名为nohup.out的文件,除非另外指定输出文件:nohup命令>myout.file2>&1&使用nohup后,很多人直接忽略了。事实上,当当前账户退出或非正常结束时,命令可能会自行结束。因此,使用nohup命令后台运行命令后,需要使用exit正常退出当前账号,以保证命令一直在后台运行。2>&1parsecommand>out.file2>&1&command>out.file是将命令的输出重定向到out.file文件,即输出内容不打印到屏幕,而是输出到out.file文件。2>&1是将标准错误重定向到标准输出,这里标准输出已经重定向到out.file文件,即标准错误也输出到out.file文件。最后一个&是让命令在后台执行。试想一下2>1是什么意思,2和>的组合代表错误重定向,1代表错误重定向到文件1而不是标准输出;替换为2>&1,&和1的组合代表标准输出。它成为标准输出的错误重定向。
