Primeiro, vamos esclarecer algumas noções básicas antes de começar minha resposta
AFAIK
- Um terminal só pode ter um shell de login, no entanto, vários usuários podem estar usando o mesmo terminal com shell de não-login.
- Esse shell de login pode ser um TTY ou PTS ( Diferença entre tty e pts )
- O shell de login pode ter outros shells não de login ( O que são shells de login / não-login )
-
exit
é para sair do shell de não-login (você não pode logout
do shell de não-login)
-
logout
é para sair do TTY ( logout
só pode ser usado com o login-shell)
- Como verificar se você está em um terminal de login ou não-login
Se você estiver em TTY
(./your_script && <task_you want_to_continue>) || logout
ou
(./your_script && <task_you want_to_continue>) || exit
Se você está no PTS
(./your_script && <task_you want_to_continue>) || who -u;
echo 'enter PID of login shell user you want to logout'; read PID; kill $PID;
Fonte da resposta acima
Remove "<" and ">" tags and place your task in the above scripts.
Eu não sei porque logout
e exit
não funcionam no PTS como no TTY, mas espero que isso resolva o seu problema.
Eu tenho cerca de 4 meses no Linux, então por esse padrão eu deveria ser chamado de novato. Quaisquer melhorias na resposta serão apreciadas se você encontrar algo errado.