在我们的一台 AIX 服务器上,以下 ssh 进程有时会挂起:
Server1# ssh -i /rsync-key Server2 "rm file" &
它是crontab中的一串脚本。
此问题并非总是重现。以下是一个例子:
Server1 # ps aux | head -n2
USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND<br>
root 9241056 1.8 0.0 2112 1700 - A 06:11:44 241:57 ssh <br>
Server1 # cat /proc/9241056/psinfo
ssh /rsync-key Server2 rm file
Server1 # truss -p 9241056
Absolutely no output
Server1 # kill -9 9241056
Server1 # ps -edf | grep 9241056 | grep -v grep
root 9241056 1 65 06:11:44 - 249:38 ssh
服务器 1:
#oslevel -s
6100-09-02-1412
#lslpp -l | grep openssh
openssh.base.client 6.0.0.6103 COMMITTED Open Secure Shell Commands
openssh.base.server 6.0.0.6103 COMMITTED Open Secure Shell Server
#ssh -v
OpenSSH_6.0p1, OpenSSL 1.0.1e 11 Feb 2013
服务器2:
#oslevel -s
6100-07-05-1228<br>
#lslpp -l | grep openssh
openssh.base.client 5.8.0.6101 COMMITTED Open Secure Shell Commands
openssh.base.server 5.8.0.6101 COMMITTED Open Secure Shell Server
#ssh -v
OpenSSH_5.8p1, OpenSSL 0.9.8r 8 Feb 2011
答案1
为什么在 crontab 中使用 &?只要进程在远程机器上运行,它就不会终止,只有当它耗时太长,同时 Internet 连接失败时,它才会终止。