【问题标题】:Openshift: manage cron processesOpenshift:管理 cron 进程
【发布时间】:2025-12-05 16:40:01
【问题描述】:

我已经在 openshift 框中设置了我的项目和一个 cron 文件,该项目运行正常,但由于某种原因,我无法管理 cron 正在运行的进程,我什至无法列出它们,如果我通过 ssh 和exec 'ps aux' cron 进程甚至没有出现。

我写了一个小测试:

<?php
    file_put_contents('../../b.log','pid: '.getmypid().PHP_EOL,FILE_APPEND);
    file_put_contents('../../b.log',shell_exec('whoami'),FILE_APPEND);

猫博客:

pid: 194061
54ae4f424382ec439100xxxx //the user is right, the cron process is running behind the same user

来自 ssh 的 whoami 吐出同一个用户,但如果我尝试访问我得到的进程:

ls /proc/194061
ls: no se puede acceder a /proc/194061: Permiso denegado //Permission denied

该进程存在是因为 /proc/19406[TAB] 完成并且我看到日志文件正在填充,但我无法通过 ssh 或 web 检查该进程是否真的在运行:S

【问题讨论】:

    标签: php ssh cron openshift


    【解决方案1】:

    Cron 进程只运行一小段时间然后停止,它们不会连续运行。如果您的 cron 进程正确更新了文件,那么它运行正确。

    【讨论】:

    • 是的,我知道,目前的时间限制是20m,以我的例子为例,如果a sleep(600);在 file_put_contents 之后。我在 openshift bugzilla 中发布了一个已被接受的错误。无法通信 cron 进程,因为 cron 正在其他特权级别上运行(我想),并且您永远不会知道 cron 进程何时正在运行,因为您无法使用 ps aux 或 open /proc/[pid] 列出它们(例如,如果您将此 pid 记录到文件中)