我有一个在后台运行的脚本。它打开与服务器的 SSH 连接并无限期地跟踪文件。当我让我的 mac 进入睡眠状态时,SSH 连接关闭。这是有问题的脚本:
#!/bin/sh
(ssh <user>@<ip> -o PermitLocalCommand=no \
": > .irssi/fnotify ; tail -f .irssi/fnotify " | \
while read heading message; do \
growlnotify -s -t "${heading}" -m "${message}"; \
done)&
那时,我必须运行ps aux | grep ssh
,找到正确的进程并手动杀死它;这很乏味。所以我有几个问题和可能的答案:
- 有没有办法重命名脚本的进程名称,以便每次再次运行时都可以按名称杀死它?
- 否则,有没有办法
pid
在我执行脚本时存储它,然后在我再次运行它时将其杀死?
我相信第一个解决方案是不可能的,但值得一问。
对于第二个解决方案,我做了一些研究,我去了某个地方但还不够远......这是我所拥有的:
我设法获得pid
了脚本本身,而不是特定的 SSH 连接。但据我所见,pid
脚本的始终是<pid of ssh connection> - 1
.
所以我需要将 1 添加到pid
脚本中,但我无法做到这一点。但无论如何,这是一个可行的解决方案吗?
否则,请问有什么替代解决方案?