SSH 重启并杀死实例?

Chr*_*rds 5 ubuntu ssh

我正在尝试使用以下命令在 Ubuntu 上重新启动 SSH:

sudo /etc/init.d/ssh restart
Run Code Online (Sandbox Code Playgroud)

但这只是给了我:

不是通过 /etc/init.d 调用 init 脚本,而是使用 service(8) 实用程序,例如 service ssh restart

但是,运行它给出:

重启:未知实例:

跑步:

ps -A | grep ssh
Run Code Online (Sandbox Code Playgroud)

给出 3 个实例。

我如何判断哪个是我的实例,并杀死其他实例?这会允许我重新启动吗?

有人可以帮我吗?

小智 13

调用 init.d 脚本仍应重新启动服务:

dermot@porkboy:~$ sudo /etc/init.d/ssh restart
[sudo] password for dermot:
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service ssh restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop ssh ; start ssh. The restart(8) utility is also available.
ssh stop/waiting
ssh start/running, process 4877
dermot@porkboy:~$
Run Code Online (Sandbox Code Playgroud)

'service ssh restart' 在这里工作正常(11.04)。值得注意的是,重新启动 sshd不会终止现有的 SSH 会话。当您通过 SSH 登录到一个盒子时,sshd 会产生新的进程来处理会话。重新启动 sshd 将终止主 sshd 守护进程(并再次启动它,显然)但不会影响其他产生的 sshd 实例。您需要这种行为,因为当您在远程数据中心使用无头服务器时,它会让生活变得更轻松!

现在,回答你的其余问题。不要运行“ps -A”,试试这个:

dermot@porkboy:~$ ps -ef | grep ssh
root      2522     1  0 Aug29 ?        00:00:00 sshd: dermot [priv]
dermot    2615  2522  0 Aug29 ?        00:00:04 sshd: dermot@pts/0
root      4655     1  0 10:52 ?        00:00:00 sshd: dermot [priv]
dermot    4756  4655  0 10:52 ?        00:00:00 sshd: dermot@pts/1
root      4887     1  0 10:55 ?        00:00:00 /usr/sbin/sshd -D
Run Code Online (Sandbox Code Playgroud)

这可能解释了您看到的三个 sshd 进程 - 每个会话一个用于主 sshd 守护进程,然后两个(root 父进程,dermot 子进程)。我从两个位置通过 SSH 连接 o 我有五个进程。pts/X 位与会话附加的虚拟终端有关,因此...

dermot@porkboy:~$ who
dermot   pts/0        2011-08-29 21:32 (williams-mb.local)
dermot   pts/1        2011-08-30 10:52 (192.168.253.109)
Run Code Online (Sandbox Code Playgroud)

...让我们知道哪个会话是哪个。因此,如果我想从我的 MacBook 中终止会话,我会“杀死 -9 2522”。