问题说明了一切。情况:有多个 SSH 登录都使用同一个用户名登录。命令“ps U wvsd”显示如下内容:
PID TTY STAT TIME COMMAND
1990 ? S 0:00 sshd: wvsd@notty
1991 ? Ss 0:00 /usr/lib64/ssh/sftp-server
3388 ? S 0:00 sshd: wvsd@pts/0
3389 pts/0 Ss+ 0:00 -ksh
5174 ? S 0:00 sshd: wvsd@notty
5175 ? Ss 0:00 /usr/lib64/ssh/sftp-server
5186 ? S 0:00 sshd: wvsd@pts/2
5187 pts/2 Ss+ 0:00 -ksh
5678 ? S 0:00 sshd: wvsd@notty
5679 ? Ss 0:00 /usr/lib64/ssh/sftp-server
7350 ? S 0:00 sshd: wvsd@notty
7351 ? Ss 0:00 /usr/lib64/ssh/sftp-server
8602 ? S 0:00 sshd: wvsd@notty
8603 ? Ss 0:00 /usr/lib64/ssh/sftp-server
8736 ? S 0:00 sshd: wvsd@notty
8737 ? Ss 0:00 /usr/lib64/ssh/sftp-server
8748 ? S 0:00 sshd: wvsd@pts/6
8749 pts/6 Ss+ 0:00 -ksh
10459 ? S 0:00 sshd: wvsd@notty
10460 ? Ss 0:00 /usr/lib64/ssh/sftp-server
11151 ? S 0:00 sshd: wvsd@pts/4
11152 pts/4 Ss 0:00 -ksh
11337 pts/4 R+ 0:00 ps U wvsd
我知道“sshd: wvsd@notty”的 PID 是其他登录的用户。使用他们的 PID,我有什么办法可以向他们发送消息吗?
这是在 Linux SUSE 11 x64 上。
谢谢
答案1
您可以使用who
来获取用户及其 TTY 列表,然后使用write
向特定 TTY 发送消息:
% who -H
NAME LINE TIME COMMENT
teun pts/0 Dec 9 09:05 (my.hostname.tld)
% write teun pts/0
OHAI
并使用 Ctrl-D 结束消息。
答案2
太棒了,Teun!我之前都不知道!
您还可以使用 wall 命令向所有人发送消息:
wall <enter>
Hello everyone thats logged in!
<Ctrl-D>
每个登录的用户都会收到该消息。