在目标机器上通过 ssh 执行后台命令
摘要
本教程将介绍如何通过 ssh 在目标机器上执行后台命令。我们将使用示例代码来说明这个过程。
内容
在使用 ssh 在目标机器上执行后台命令时,有几种方法可以实现。
- 使用 nohup 命令来运行后台命令,并重定向输入输出,如
nohup myprogram > foo.log 2> foo.err < /dev/null &
。 - 使用 tmux 或 screen 等工具来创建一个持久化的会话,然后在会话中运行后台命令。
以下是一些示例代码:
- 使用 nohup 命令运行后台命令,并重定向输入输出:
1ssh user@target "cd /some/directory; nohup myprogram > foo.log 2> foo.err < /dev/null &"
在上述示例中,我们使用 cd 命令切换到目标目录,然后使用 nohup 命令运行 myprogram,并将输出重定向到 foo.log 文件,错误输出重定向到 foo.err 文件,然后将输入重定向到/dev/null,最后使用&符号将命令放入后台运行。
- 使用 tmux 或 screen 创建一个持久化的会话,并在会话中运行后台命令:
1ssh user@target "tmux new -d 'cd /some/directory; nohup myprogram > foo.log 2> foo.err &'"
在上述示例中,我们使用 tmux 命令创建一个新的会话,并使用-c 选项指定要在会话中运行的命令。在命令中,我们首先使用 cd 命令切换到目标目录,然后使用 nohup 命令运行 myprogram,并将输出重定向到 foo.log 文件,错误输出重定向到 foo.err 文件,最后使用&符号将命令放入后台运行。
总结
通过 ssh 在目标机器上执行后台命令可以使用 nohup 命令或者 tmux 或 screen 等工具。使用 nohup 命令可以将命令放入后台运行,并重定向输入输出。使用 tmux 或 screen 可以创建一个持久化的会话,在会话中运行后台命令。根据需要选择合适的方法来在目标机器上执行后台命令。