如何使用PHP启动停止cronjob?

如何使用PHP启动停止cronjob?,第1张

如何使用PHP启动/停止cronjob?

我进行了一些研究,并在论坛中找到以下消息:

将EDITOR环境变量设置为php脚本调用“ crontab -e”。该脚本可以修改文件,并且在退出时crontab将重新读取文件并进行更新。

因此,我尝试了一些方法,并成功了。我将在下面粘贴工作代码:

#!/usr/bin/php<?php$on  = "* * * * * /usr/bin/php /home/user/every_minute_script.phpn";$off = "# * * * * * /usr/bin/php /home/user/every_minute_script.phpn";$param    = isset( $argv[1] ) ? $argv[1] : '';$filename = isset( $argv[2] ) ? $argv[2] : '';if ( $param == 'activate' ){    shell_exec( 'export EDITOR="/home/user/cron.php on"; crontab -e' );}elseif( $param == 'deactivate' ){    shell_exec( 'export EDITOR="/home/user/cron.php off"; crontab -e' );}elseif( in_array( $param, array( 'on', 'off' ) ) ){    if ( !is_writable( $filename ) )        exit();    $crontab = file( $filename );    $key = array_search( $param == 'on' ? $off : $on, $crontab );    if ( $key === false )        exit();    $crontab[$key] = $param == 'on' ? $on : $off;    sleep( 1 );    file_put_contents( $filename, implode( '', $crontab ) );}exit();?>

实际上,我们

cron.php
/home/user
文件夹中有一个名为的脚本,设置为可执行文件(
chmod a+xcron.php
),并从命令行(PHP-CLI)调用。稍后,我将对其进行调整以从网络运行,这是我的意图。

用法:

./cron.php activate
启用cronjob并将
./cron.php deactivate
其禁用。

该脚本正确地(本身)设置了EDITOR环境变量,然后调用

crontab-e
,依次调用EDITOR(现在是相同的cron.php脚本),并将临时crontab文件位置作为参数传递。然后,找到并更改了正确的crontab行,并保存了修改后的版本,替换了临时文件。脚本退出后,crontab将更新。

这恰好满足了我的需求,并且符合我的需求。

其他答案很好,可能适合不同的需求和方案,在此我要感谢做出贡献的每个人。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5019326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存