linux - Cron 作业终止并重新启动 Python 脚本

标签 linux bash shell

我在 Linux 服务器上设置了一个 cron 作业,每隔一天终止并重新启动一个 python 脚本 (run.py)。我将作业设置为以 root 身份运行,但我发现有时它无法正确终止进程(并最终连续运行两个脚本)。

有更好的方法吗?

我的 cron 作业参数:

0 8 * * 1,4,7 cd/home/myUser && ./start.sh

开始.sh:

#!/bin/bash
echo "Running..."
sudo pkill -f run.py
sudo python run.py &

最佳答案

我想 run.py 作为 python 运行,而不是 run.py。所以你不会用 kill -f run.py 找到任何东西。

您应该将进程的 PID 回显到一个文件中,并使用该值杀死仍在运行的前一个进程。只需添加 echo $! >/path/to/pid.file 作为 start.sh 脚本中的最后一行来执行此操作。

阅读更多:


入门示例:

#!/bin/bash
echo "Running..."
sudo pkill -F /path/to/pid.pid
sudo python /path/to/run.py &
echo $! > /path/to/pid.pid

关于linux - Cron 作业终止并重新启动 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27767972/

相关文章:

linux - 在纯 bash 中将密码传递给 ssh

linux - Bash命令打开最大的文件

linux - 初始化 systemctl 状态 mariadb.service

mysql - 获取MySQL路径

python - 在 Eclipse 中为远程系统资源管理器启用 pep8

linux libiconv 从 ISO8859 或 IBM850 转码到 UTF8 错误

bash - 如何在zsh中获取执行脚本的父文件夹?

bash - Shell globbing 排除目录模式

linux - 如何查找特定文件在给定时间范围内被修改的次数

regex - Bash Regex 接受 [Number],但我只想接受 Number