我有一个 bash 脚本,当前检查名为 miner_nbeats.py 的 python 脚本,如果尚未运行则执行它。
这是我的脚本
if /bin/pgrep -f "miner_nbeats.py" >/dev/null; then
echo "script running"
else
echo "script not running"
tmux new-session \; send-keys "source activate python310 && cd /home/putsncalls23/test && python miner_nbeats.py" Enter
fi
然后我有一个 python 脚本,它每 5 分钟执行一次 bash 脚本。然而,问题是,即使程序
miner_nbeats.py
被杀死,系统仍然会检测到正在运行 pgrep -f "miner_nbeats.py"
的进程,并且如果它被杀死,永远不会重新执行 miner_nbeats.py
。 (我猜这是 tmux 命令的结果?)
这附近还有吗?
谢谢
通过自动重启启动 systemd 服务。
最好在 /etc/systemd/system/miner_nbeats.service 中在系统范围内创建它,或者使用
systemd-run
临时启动服务。重要的是设置属性Restart=always
。
[Unit]
Description=starts my miner_nbeats
[Service]
ExecStart=/bin/bash -c 'source activate python310 && cd /home/putsncalls23/test && python miner_nbeats.py'
Restart=alway