无法得到nohup,open_init_pty和sudo一起工作

我努力将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" 

我究竟做错了什么??

如果没有nohup呢? 你可以像这样开始一个子shell:

 (open_init_pty sudo bash -c "echo hello") 

我有时候会用&来做这个,但是你的例子并没有在后台运行。 无论如何,这可能会实现你的目标,如果父shell退出,没有工作终止。