在目标机器上通过 ssh 执行后台命令

摘要

本教程将介绍如何通过 ssh 在目标机器上执行后台命令。我们将使用示例代码来说明这个过程。

内容

在使用 ssh 在目标机器上执行后台命令时,有几种方法可以实现。

  1. 使用 nohup 命令来运行后台命令,并重定向输入输出,如nohup myprogram > foo.log 2> foo.err < /dev/null &
  2. 使用 tmux 或 screen 等工具来创建一个持久化的会话,然后在会话中运行后台命令。

以下是一些示例代码:

  1. 使用 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,最后使用&符号将命令放入后台运行。

  1. 使用 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 可以创建一个持久化的会话,在会话中运行后台命令。根据需要选择合适的方法来在目标机器上执行后台命令。


相关文章推荐