我有一个名为kill.sh的shell脚本,它可以帮助我重新启动我编写的python脚本。我通常使用pkill -f main.py来终止我永远运行的python脚本。但是,当我将其写入shell脚本时,它不起作用。
我的脚本
pkill -f main.py
ps aux | grep main.py # Still shows the process running. 而只需在bash命令行中执行pkill -f main.py即可正常工作。为什么会这样呢?
发布于 2020-09-24 00:08:37
这不是一个令人满意的答案,因为我找不到pkill -f不能在脚本中工作的根本原因。我最终使用systemd服务文件来管理我的python进程。这是一个仅供参考的示例。
[Unit]
Description=Service Name
[Service]
Environment=PYTHONUNBUFFERED=1
ExecStart=/path/to/python /path/to/python/script.py
Restart=on-failure
RestartSec=5s
WorkingDirectory=/python/project/dir/将文件命名为main.service并将其放入/lib/systemd/system/中
运行服务和服务以及服务状态和输出systemctl status main.service -l的
现在,我不必担心多个进程正在运行。如果程序死了,它甚至会重启。
https://stackoverflow.com/questions/63950493
复制相似问题