为什么 pkill 会终止我的 SSH 会话?

Why does pkill kill my SSH session?

我想做这样的事情:

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

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

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

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

希望对您有所帮助。