2

我正在努力将 nohup、open_init_pty 和 sudo 组合在一个单行中。像这样的东西:

nohup open_init_pty sudo bash -c "command1;command2"

我的要求有点奇怪:

  • 使用 nohup 以便父 shell 可以干净地退出
  • open_init_pty 实际上在通过 PHP 的远程 SSH 中,这需要这个
  • sudo 运行特权命令
  • 运行多个命令 - 因此是 bash -c 行

我尝试使用不同的组合来缩小问题范围:

# works OK, output in nohup.out
nohup sudo bash -c "echo hello"

# works OK, hello output to console
open_init_pty sudo bash -c "echo hello"

# doesn't work
nohup open_init_pty sudo bash -c "echo hello"

我究竟做错了什么??

4

1 回答 1

1

没有nohup怎么办?你可以像这样启动一个子shell:

(open_init_pty sudo bash -c "echo hello")

我有时会&在最后使用 a 来执行此操作,但您的示例并未在后台运行。无论如何,如果父 shell 退出,这可能会实现您不终止作业的目标。

于 2012-03-18T15:05:11.937 回答