避免注销时删除屏幕会话和 nohup 进程

避免注销时删除屏幕会话和 nohup 进程

我到处都看到这screen是为了保持会话打开,以便您可以在断开连接后返回它。但对于我使用的系统来说,情况似乎并非如此ssh。我是否理解正确,系统管理员已经瘫痪了 nohup 和 screen?有办法绕过这个吗?

这是我做的一个测试(也许问题是我自己的):

mira1:~> screen -S test  COMMENT: I did ctrl-a ctrl-d
[detached from 54211.test]
mira1:~> logout
Connection to mira1.**** closed.
me:~ me$ ssh me@mira1.***

Last login: Tue Feb  9 23:21:57 2016 from client*****
mira1:~> screen -ls
No Sockets found in /var/run/screen/S-me.

编辑:在分离后和注销之前,屏幕仍然存在。如:

mira1:~> screen -S test
[detached from 59923.test]
mira1:~> ls -ltr /var/run/screen/S-me/
total 0
prw------- 1 me URP_dse 0 Feb  9 23:39 59923.test
mira1:~> 

编辑 Gile 的问题 2:这是ssh会话 #1

mira1:~> screen -ls
There is a screen on:
    59923.test  (09/02/16 23:39:26) (Detached)
1 Socket in /var/run/screen/S-me.

mira1:~> screen -r
[detached from 59923.test]

ssh会话#2

mira1:~> screen -ls
There is a screen on:
    59923.test  (09/02/16 23:39:26) (Detached)
1 Socket in /var/run/screen/S-me.

ssh再次进行#1 会话

mira1:~> logout
Connection to mira1.**** closed.
client-10-129-225-10:~ me$ 

ssh再次会话#2(屏幕消失)

mira1:~> screen -ls
No Sockets found in /var/run/screen/S-me.

答案1

屏幕的功能可能autodetach已关闭:

autodetach on|off
设置屏幕是否在挂起时自动分离,这会保存所有正在运行的程序,直到使用screen -r命令恢复它们为止。关闭时,挂断信号将终止屏幕及其包含的所有进程。默认情况下,自动分离处于启用状态。

假设该设置不在您的 中$HOME/.screenrc,则要查找的位置将在系统文件中,例如/etc/screenrc.

另一种可能性是远程计算机被配置(在 中/etc/ssh/sshd_config)以断开空闲用户的连接。参见示例

但在这种情况下,你无能为力。

相关内容