Twi*_*Toe 7 linux python gnu-screen systemd
我目前正在通过 rc.local 中的此脚本在 Screen 会话中运行 python 脚本:
screen -L -dmS pi python /home/pi/truck/main2.py &
Run Code Online (Sandbox Code Playgroud)
但我希望它通过 systemd 运行,以便在 Python 脚本崩溃时重新启动它。
我尝试在 /systemd/system/myscript.service 中创建一个服务
[Unit]
Description=myscript
After=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=3
ExecStart=/usr/bin/screen -L -dmS pi python /home/pi/truck/main2.py
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
但它不会在 Screen 会话中运行我的脚本?
如果我得到一个正在运行的屏幕列表,它表明屏幕会话“pi”已死。
use*_*686 13
Type=simple
期望服务的主进程永远继续运行。然而,你的实际命令是告诉 Screen 做相反的事情——开始一个新的会话并分叉到后台。
当 Screen 执行此操作时,systemd 假定该服务已退出,并清理所有剩余进程 - 包括“后台” Screen 进程。(这甚至不算是“失败”。)
为避免这种情况,forking
请将type 更改为,或将 Screen-dm
选项更改为-Dm
。
归档时间: |
|
查看次数: |
9359 次 |
最近记录: |