Estou tentando determinar se um comando que estou executando está dentro de uma sessão SSH. Normalmente, isso funciona bem verificando $SSH_CONNECTION
ou percorrendo a árvore de processos e procurando por arquivos sshd
.
No entanto, se eu iniciar uma screen
sessão localmente e depois reanexá-la por meio de SSH, nenhuma dessas opções funcionará.
Existe alguma maneira de dentro da sessão de tela reanexada para determinar a qual shell a sessão está anexada no momento?
A árvore de processos se parece com shell(X) --> screen(Y) --> systemd(1)
, o que faz sentido, já que a sessão de tela provavelmente é alterada quando eu saio do terminal local.
screen -ls
não diz nada além de (Attached)
, apenas com o PID Y
, nenhum PID útil de onde está conectado no momento.
A árvore de processo de shell(A)
onde ele está anexado inclui um único filho screen(B)
, mas não consigo encontrar uma maneira de vincular os PIDs Y
e os arquivos B
. Eu até tentei encontrar a outra extremidade do soquete unix sendo usada pela tela, mas ela aparece vazia. (mesmo marcado como root
).
Isso é apenas algo que não é possível?