![Linux screen 工具 - 在 cron 中创建的会话上运行命令](https://linux22.com/image/909973/Linux%20screen%20%E5%B7%A5%E5%85%B7%20-%20%E5%9C%A8%20cron%20%E4%B8%AD%E5%88%9B%E5%BB%BA%E7%9A%84%E4%BC%9A%E8%AF%9D%E4%B8%8A%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4.png)
在 crontab 中(通过用户命令编辑crontab -e
)me
,我写道:
@reboot /usr/bin/screen -mdS test
*/6 * * * * /home/me/RunDFB.sh
我正在RunDFB.sh
检查我的控制台应用程序(在会话中运行screen
)是否正常工作 - 如果不是,脚本将终止我的应用程序,并通过以下命令再次运行它:
/usr/bin/screen -S test -X stuff "$SCREEN_CMD"`echo -ne '\015'`
当 crontab 正在创建会话(例如@reboot /usr/bin/screen -mdS test
)时,脚本无法从$SCREEN_CMD
变量运行命令(没有任何错误。它只是没有执行),但是当我自己创建会话时(以与 crontab - 相同的方式),脚本在会话中/usr/bin/screen -mdS test
运行我的命令没有任何问题。$SCREEN_CMD
screen
我究竟做错了什么?
。
PS 我甚至尝试过将这两个screen
命令结合起来(/usr/bin/screen -m -d -S test -X stuff "$SCREEN_CMD"
echo -ne '\015'``),但是(无论是我自己输入命令还是通过 crontab 运行),我都会收到错误消息:
未找到屏幕会话。
。
@edit:这是我的$SCREEN_CMD
变量的内容
SCREEN_CMD="dotnet run --project /home/pi/DFB/DFB.csproj"