我有一个 Bash 脚本,当它在控制台中关闭时,需要执行一些清理命令。
基本上,清理是我的 Python 守护程序中的一个重新启动命令(我们称其为磷),这会停止当前进程并启动一个新进程。 Bash 脚本用于监视 Python 守护程序应用程序。
然而问题是,由于某种原因,它没有启动程序来重新启动Python程序。
Bash 脚本位于我使用 Raspbian 的 Raspberry Pi 的桌面上。我应该通过双击它并选择来启动它在终端中执行。
这是我的代码的要点。
function clean_up {
python3 A restart & #stops the python Deamon if running, then start it. (will start if it wasn't running to begin with)
disown
quit
}
trap clean_up SIGINT
trap clean_up SIGTERM
trap clean_up SIGHUP
trap clean_up SIGCHLD
trap clean_up SIGCONT
python3 A stop
... (code to start monitor)
python3 A start ArgumentToHookToMonistor
答案1
我不确定这是否会达到您想要的效果,但它将有助于调试问题:
在脚本的开头:启用作业控制(在脚本中默认禁用):
set -m
然后在 clean_up 函数中,更改
disown
为disown %1 2>&1 | tee /path/to/logfile.log
另外,在该函数中,如果您希望在手动运行脚本时有时间查看消息,请在行
sleep 3
前添加 。quit