首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的命令不能与nohup和SSH一起工作?

nohup是一个在Unix和类Unix系统中使用的命令,用于在后台运行命令,即使用户退出登录或关闭终端,命令仍然继续运行。SSH是一种安全的远程登录协议,用于远程连接到服务器并执行命令。

当你在SSH会话中运行一个命令并使用nohup命令将其放入后台时,可能会遇到命令无法正常工作的问题。这可能是由于以下原因:

  1. 终端关闭:当你退出SSH会话或关闭终端时,会话中的所有进程都会收到终止信号。nohup命令可以防止命令受到终止信号,但如果命令需要终端来执行某些操作(例如读取输入),它可能无法正常工作。
  2. 输入/输出问题:当你在SSH会话中运行一个命令时,它的输入和输出通常与终端相关联。当你使用nohup命令将命令放入后台时,它的输入和输出将不再与终端相关联。如果命令需要从终端读取输入或将输出发送到终端,它可能无法正常工作。

为了解决这些问题,你可以尝试以下方法:

  1. 使用重定向:将命令的输入和输出重定向到文件或/dev/null。例如,你可以使用以下命令将命令的输出重定向到文件:
  2. 使用重定向:将命令的输入和输出重定向到文件或/dev/null。例如,你可以使用以下命令将命令的输出重定向到文件:
  3. 这将把命令的输出保存到output.txt文件中。
  4. 使用screen或tmux:这些工具可以创建一个虚拟终端,允许你在后台运行命令并随时重新连接到它们。你可以在SSH会话中使用screen或tmux命令启动一个新的会话,然后在会话中运行命令。即使你退出SSH会话,命令仍然会继续在后台运行。你可以使用以下命令安装和使用screen:
  5. 使用screen或tmux:这些工具可以创建一个虚拟终端,允许你在后台运行命令并随时重新连接到它们。你可以在SSH会话中使用screen或tmux命令启动一个新的会话,然后在会话中运行命令。即使你退出SSH会话,命令仍然会继续在后台运行。你可以使用以下命令安装和使用screen:
  6. 要在已经运行的screen会话中重新连接,可以使用以下命令:
  7. 要在已经运行的screen会话中重新连接,可以使用以下命令:
  8. 对于tmux,你可以使用以下命令安装和使用:
  9. 对于tmux,你可以使用以下命令安装和使用:
  10. 要重新连接到已经运行的tmux会话,可以使用以下命令:
  11. 要重新连接到已经运行的tmux会话,可以使用以下命令:

请注意,以上方法仅提供了一些常见的解决方案,具体取决于你运行的命令和环境。如果问题仍然存在,你可能需要进一步调查和调试命令的特定要求和限制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券