【问题标题】:Why does pkill kill my SSH session?为什么 pkill 会杀死我的 SSH 会话?
【发布时间】:2017-01-05 21:30:04
【问题描述】:

我想做这样的事情:

program='java'
ssh bob@mycomputer "pkill -f $program; echo 'Done!'";

但是,pkill 似乎正在杀死我的 ssh(我从未见过 Done!)。如果我用其他东西(比如pwd)替换pkill,它会按预期工作。

【问题讨论】:

  • "pkill 返回一个终止 ssh 的非零退出代码..." 这不是它的工作原理。更有可能的是,pkill 正在杀死由 ssh 启动的 shell 实例以运行您的远程命令。
  • 您可以使用ssh bob@mycomputer "false; echo Done" 轻松测试“返回非零终止 ssh”理论,看看会发生什么。
  • 啊,好吧,我错了——但我的问题仍然存在。如何使 pkill 不删除 ssh ??
  • 即使pkill 错误,您的“完成”也应该被执行。输出将完成!带有 pkill 抛出的错误。
  • 我现在更新了问题。

标签: shell ssh remotecommand pkill


【解决方案1】:

这里似乎真的是一个很好的案例。 -f 标志使用终端的完整路径,如果它无法获取进程,则它会杀死它可能喜欢的所有进程 pkill -f / 包括 ssh。参考here

如果你在没有-f 的情况下尝试 pkill,那么它会起作用。 您还可以检查 ssh 详细信息 (ssh -v) 以查看后台发生的情况。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多