如何使用 nohup 运行 sudo 进程?

如何使用 nohup 运行 sudo 进程?

如何使用 nohup 运行 sudo 命令?我想执行 sudo 命令,然后终止 ssh 会话,但不中断或停止该进程。

我试过了,但没用

sudo nohup . test.sh

答案1

使用

nohup sudo <command> &

第二个问题是执行方式:. script不能与 一起使用nohup,因为它.是 shell 内部命令,并且nohup只接受可执行文件。这也应该在nohup.out错误消息中可见。

即使用

nohup sudo /bin/bash script.sh &

(或您运行的任何 shell)或使脚本成为可执行文件。

答案2

它不是 sudo 命令失败,而是.因为它是内部 shell 命令而失败。这些可能是有效的:

sudo nohup /bin/bash test.sh

或者:

nohup sudo /bin/bash test.sh

区别在于 nohup.out 的所有者

没有 nohup:

sudo /bin/bash test.sh & disown %1

或者:

(sudo /bin/bash test.sh &)

如果您需要在后两种情况下登录,请使用 > logfile 2>&1。根据脚本的性质,您可能不需要指定./bin/bash根本不需要指定。

相关内容