2
我使用Mina SSHD客戶端在OpenSSH服務器上運行遠程命令。 我正在遠程服務器上執行一個長時間運行的命令,並希望它在客戶端會話關閉時終止。斷開連接時終止遠程ssh命令
,當我從我的PC終端運行此命令:
\#ssh -t [email protected] sleep 12345
這是我發現在遠程機器上:
\# ps -axf
---- Omitted for clarity
12158 ? Ss 0:29 /usr/sbin/sshd -4
22708 ? Ss 0:11 \\_ sshd: [email protected]/3,pts/4
16894 pts/3 Ss 0:00 | \\_ -bash
17750 pts/3 R+ 0:00 | | \\_ ps -axf
17606 pts/4 Ss+ 0:00 | \\_ sleep 12345
---- Omitted for clarity
當我殺了SSH客戶端我的機器「睡12345 '在遠程機器上終止。
但是,當我運行完全相同的使用Mina Java SSH客戶端,這就是我所看到的。
SshClient client = SshClient.setUpDefaultClient();
client.start();
ConnectFuture connect = client.connect("user", "server", 22);
connect.await(10000); //ms
ClientSession session = connect.getSession();
session.addPasswordIdentity("password");
AuthFuture auth = session.auth();
auth.await(10000);
ClientChannel channel = session.createExecChannel("sleep 12345");
OpenFuture open = channel.open();
open.await(10000);
Thread.sleep(15000); // ms, wait for command to run
channel.close(true);
session.close(true);
client.stop();
\# ps -axf
---- Omitted for clarity
27364 ? Ss 0:00 \\_ sshd: [email protected]/0
3277 pts/0 Ss 0:00 | \\_ -bash
22306 pts/0 R+ 0:00 | \\_ ps axf
21699 ? Ss 0:00 \\_ sshd: [email protected]
21796 ? Ss 0:00 \\_ sleep 12345
---- Omitted for clarity
代碼後終止命令的上級變成初始化PID:
\# ps -axf
21796 ? Ss 0:00 sleep 12345
\#ps -ef | grep sleep
root 21796 1 0 08:26 ? 00:00:00 sleep 12345
有一些˚F滯後還是選項在Mina中導致它在關閉會話時終止我在遠程服務器上的命令?
謝謝,它的工作原理 – 2015-03-03 08:07:49