来自 sshpass邮件列表(以及堆栈溢出)的问题。SSHpass 在 HP-UX 上不起作用。
查看 truss 输出,我看到以下内容:
-u [/tmp/sshpass][14066]{3783827} fork() ................... (returning as child ...) ......... = 14064 {3783821}
子进程为 14066。
-u [/tmp/sshpass][14066]{3783827} setpgrp3(2)................................................. [entry]
-u [/tmp/sshpass][14066]{3783827} setpgrp3(2)................................................. = 14066
开始一个新的会话,与之前的 TTY 断开连接
-u [/tmp/sshpass][14066]{3783827} open(0x400132d0, O_RDWR, 01210)............................. [entry]
-u [/tmp/sshpass][14066]{3783827} open("/dev/pts/5", O_RDWR, 01210)........................... = 6
使用标志 O_RDWR 打开 /dev/pts/5。根据 Posix,此时 pts/5 应该成为新进程的控制终端。这显然不会发生。
用于打开的 HP-UX 手册页建议打开 /dev/pts/5 应该使该进程采用它作为其新的控制 TTY。我不知道为什么没有发生这种情况,也无法访问 HP-UX 系统进行实验。