【发布时间】:2023-08-21 20:55:01
【问题描述】:
即使在关闭终端后,我仍试图在后台运行脚本。我搜索并搜索并尝试了nohup 和disown,但似乎都没有工作。当我关闭终端窗口时,我会收到典型的 Closing this window will terminate the running processes: watch. 消息。这最终会终止我的后台进程,即使使用nohup 或disown。可能是什么问题?
我的代码是简单的两行代码
cmd="nohup watch -n 1 sudo /etc/block.sh > /dev/null"
$cmd & # blocks automatically
它位于.bash_profile,因为我希望它在我打开一个新终端时启动。
你可以忽略sudo;我已经找到了一种无需输入密码即可执行 sudo 命令的方法。
我使用的是 Mac OSX。
【问题讨论】:
-
每次启动新 shell 时都启动一个新进程听起来是个糟糕的主意。
-
@tripleee 我知道这有安全问题。但在我解决这个问题之前,我宁愿先让它工作。在这一点上,我不确定是否可以在关闭终端的后台运行进程。
-
警告信息似乎来自 OSX 终端应用程序;这当然不是 Bash 的一个特性。尽管有警告,您是否检查过该进程是否仍在运行?如果没有,你知道是什么杀死了它吗?
-
进程(我定义的cmd)在终端启动后运行。当我尝试关闭终端时,该进程仍在运行。只有在我关闭终端窗口后 cmd 才会停止。我将尝试检查 OSX 终端首选项,看看它是否负责。