- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想通过 crontab 执行我的 python 文件,只有当它关闭或没有运行时。我尝试在 cron 选项卡中添加以下条目,但它不起作用
24 07 * * * pgrep -f test.py || nohup python /home/dp/script/test.py & > /var/tmp/test.out
如果我运行
pgrep -f test.py ||
test.py 工作正常nohup python/home/dp/script/test.py & >/var/tmp/test.out
手动,如果我删除 pgrep -f test.py || 它也可以在 crontab 中工作从我的 crontab 中保留 24 07 * * * nohup python/home/dp/script/test.py & >/var/tmp/test.out
如果我添加 pgrep -f,知道为什么 crontab 不工作吗?有没有其他方法我可以只运行一次 test.py 以避免 test.py 的多个运行进程?谢谢,迪帕克
最佳答案
我用运行无限循环的 script.py
进行了测试。然后
pgrep -f script.py
...从终端,给 一个 pid,13132
,同时从 cron 运行:
pgrep -f script.py > /path/to/out.txt
输出 两个 pid,13132
和 13635
。
因此我们可以得出结论,当从 cron 运行时,命令 pgrep -f script.py
将自身列为匹配项。不确定如何以及为什么,但这很可能是由于 cron
使用一组非常有限的环境变量(HOME、LOGNAME 和 SHELL)运行这一事实间接引起的。
从(包装器)脚本运行 pgrep -f
会使命令不列出自身,即使从 cron
运行也是如此。随后,从 cron
运行包装器:
#!/bin/bash
if ! pgrep -f 'test.py'
then
nohup python /home/dp/script/test.py & > /var/tmp/test.out
# run the test, remove the two lines below afterwards
else
echo "running" > ~/out_test.txt
fi
关于python - crontab 如果尚未运行则运行 python 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39485918/
我在 CentO 上以 root 身份登录。 如果我这样做 crontab -e ,我有一个空文件。 如果我这样做 cat /etc/crontab ,我有一个包含命令的文件。 这怎么可能? 任何的想
我有以下 cron 作业命令: * * * * * /usr/bin/lynx -term=vt100 http://abc.com/dir1/di2/script.php?action=add&co
我最近要在crontab中执行docker-compose命令时遇到问题。 我有一个docker-compose YAML文件,该文件定义了我需要的所有服务,例如“docker-compose.yml
如果您有一个每 5 分钟运行一次的 crontab 作业,您如何确保它永远不会超限?也就是说,您如何确保 crontab 作业的前一次迭代在下一次运行之前完成? 最佳答案 在脚本的开头,在文件系统的某
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
或许还有另一种解决方案。我构建了一个网络应用程序,需要 5-10 个 cron 来保持它的维护和不同的间隔。我想将 crontab checkin 版本控制,以便轻松部署到其他服务器。 我希望能够在/
我有一个带两个参数的命令。 当我手动运行命令时,我是这样做的: cmd -i xyz.dat hit enter enter password in the prompt hit enter conf
我在树莓派上,使用 rasbpian ! 我正在尝试安装一个新的 crontab 来执行基本脚本。这将使用 vlc 从网络摄像头拍摄一张照片。 我想每分钟都这样做,但我无法编辑我的 crontab 用
我想通过在我的服务器中执行此操作来添加一个 crontab 计划: echo "30 * * * */home/my/var/dir/to/script/var/etc/etc/etc/"> cron
将文本通过管道传输到 crontab 与 crontab 之间有什么区别 - (我认为确认它使用标准输入)? 在我的 Linux 机器上,执行 cat "1 0 0 0 0 something" |
我有一个 crontab 设置为 execute the 0th minute of every 3rd hour every day crontab 的语法是: 0 */3 * * * perl t
我使用 GENTOO 发行版。 crontab -e 35 12 * * * root php5 /home/www/cron.php 当我手动运行时: php5 php5 /home/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
假设我有一个 crontab,它每 20 运行一次分钟,我有一个可以变化的小时范围,所以让我们说 a-b ,在一个例子中可能看起来像 */20 5-23 * * * /usr/bin/cool_pro
我在 Win7 中使用的是 cygwin 版本 2.3.1(0.291/5/3),并且已经尝试了几个小时让我的 crontab 计划作业运行。在我看来,可能成为问题的是我的 cron 进程和我的 cr
我想知道如果我将 crontab 添加到 /etc/crontab 或 crontab -e 是否重要? 我有一个 Ubuntu 17 和 Debian 9 VM 正在运行,我不知道哪个是正确的地方。
我尝试了以下命令,crontab 停止运行任何作业:echo "@reboot/bin/echo 'test' >/home/user/test.sh"|定时任务- 在 Linux 中将作业添加到 c
我想寻求有关 python-crontab 模块的帮助。我有一个简单的 shell 脚本,可以使用 curl 命令录制互联网广播流。我想通过在 crontab 中安排录制来提前安排录制。我找到了允许我
我将在这里扩展我的问题: 当包括 root 在内的每个用户都有自己的 crontab 时,系统 crontab 的需求是什么?系统 crontab 的存在似乎重复了功能。系统 crontab 是否更像
我想在我的 Capistrano 部署文件中包含 cron 任务,而不是使用以下命令手动编辑 crontab 文件: crontab -e [username] 是否有我可以在 Capistrano
我是一名优秀的程序员,十分优秀!