我尝试使用 xterm 执行一个程序,然后在程序运行时关闭 xterm,但这似乎不像我预期的那样工作。
在 bash 中有一个选项,bash -c [command]
xterm 中也有这个选项吗?我目前正在使用,xterm -e [command]
但这会使 xterm 窗口保持打开状态,直到我的程序完成。但我想打开它,运行程序,关闭它并保持程序运行。
为什么我甚至没有使用 xterm 时,却想通过它启动程序?我通过另一台计算机上的 xpra 调用它,但无法仅启动该程序,因为我需要它与另一台电脑上的环境一起使用。
有办法吗?
答案1
我不认为你需要xpra
。ssh
是一个好的选择
ssh user@hostname /path/to/program
或ssh
+screen
ssh user@hostname "screen /path/to/program"
或xpra
+screen
xpra user@hostname "screen /path/to/program"
答案2
你似乎对事物的工作原理感到困惑。你不需要终端来运行程序。
“启动xterm
,以便您可以启动一个进程然后退出xterm
”简化为“启动一个进程”,您可以完全排除它xterm
。
我猜你正在寻找
nohup command >command.out 2>command.err &
它command
作为后台进程启动(因为&
),输出到command.out
,错误消息到command.err
。
如果你不关心输出或信号处理nohup
,你可能只是想要
command &
这不允许您与后台命令进行交互(但也不允许您关闭,xterm
所以我想您不需要这样做);如果您希望能够做到这一点,请考虑screen
或tmux
允许您在虚拟终端中运行该程序,您可以断开连接并稍后重新连接。