栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用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将更新。

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

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409087.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号