mac下使用nohup运行程序以及执行定时任务

最近在思考队列怎么一直开启,一直执行的问题,想到了可以写一个死循环,不停的去执行

用nohup挂在就可以了

因为mac自带PHP和apahce

只需要用root用户启动apache

sudo apachectl restart

PHP启动方式为  php-fpm start  一般情况下都是默认启动的;

接着要知道项目运行的目录为 /Library/WebServer/Documents;

默认运行的是/Library/WebServer/Documents/index.php文件;

我们可以先写一个简单的demo来测试是否一直开着进程在执;

直接在mac终端执行 sudo  nohup php /Library/WebServer/Documents/index.php>>/Library/WebServer/Documents/hi.txt

查看是否成功

cat /Library/WebServer/Documents/hi.txt

成功了的 ok

当然这个方式也可以用来执行队列,定时任务之类的

比如这个tp5项目

直接运行

php 文件目录/think test即可

 php /Library/WebServer/Documents/tp5/think test

如果是写定时任务的话,可以根据情况来写

分0-59

时0-12

天1-31

月1-12

周0-7

比如每天凌晨0:01执行date.php

1 0 * * * php /Library/WebServer/Documents/tp5/think date

每5分钟执行Minutes.php

*/5 * * * * php /Library/WebServer/Documents/tp5/think minutes

每月第一天中午12点整执行Month.php

0 12 1 * * php /Library/WebServer/Documents/tp5/think month

如果要测试就可以把输出写到日志或者写到新的文件里面

 */2 * * * * php /Library/WebServer/Documents/tp5/think date >>/Library/WebServer/Documents/tp5/test.txt

这句话表示每两分钟服务器执行以下php think date,且把输出写到test.txt文件

经过测试这个也是成功的,前提是先要把定时任务写到crontab中

使用root用户来编写定时任务

sudo -i  输入密码

crontab -e 编写定时任务  按键盘i出现insert 表示可以写入 写好后按esc ,再按!wq既可强制保存退出

crontab -l 查看定时任务列表

cat /Library/WebServer/Documents/tp5/test.txt可以查看是否写入成功

猜你喜欢

转载自blog.csdn.net/resilient/article/details/82996061