Does exiting a login shell necessarily log out of the OS?
Bash manual says
logout [n]
Exit a login shell, returning a status of n to the shell’s parent.
On a virtual console of Ubuntu, I first log in, and in the login shell, run:
$ pstree -paus $$
systemd,1 --system --deserialize 19
`-login,30488 -p --
`-bash,31728,t
`-pstree,31774 -paus 31728
and then run logout
, and all the processes starting from login,30488
till below disappear, more than just "return to the shell's parent" which is thelogin
process.
In a login bash shell , does bash builtin commandlogout
log out of the OS, not just exit the shell?
Does exiting a login shell (not necessarily by logout
, but also any other way, such as bash builtin exit
among others) necessarily lead to logging out of the OS?
May I also ask what logging out of OS means?
Thanks.
Extended to: https://stackoverflow.com/questions/53887813/how-does-the-login-program-in-linux-invoke-a-login-shell
bash logout
add a comment |
Bash manual says
logout [n]
Exit a login shell, returning a status of n to the shell’s parent.
On a virtual console of Ubuntu, I first log in, and in the login shell, run:
$ pstree -paus $$
systemd,1 --system --deserialize 19
`-login,30488 -p --
`-bash,31728,t
`-pstree,31774 -paus 31728
and then run logout
, and all the processes starting from login,30488
till below disappear, more than just "return to the shell's parent" which is thelogin
process.
In a login bash shell , does bash builtin commandlogout
log out of the OS, not just exit the shell?
Does exiting a login shell (not necessarily by logout
, but also any other way, such as bash builtin exit
among others) necessarily lead to logging out of the OS?
May I also ask what logging out of OS means?
Thanks.
Extended to: https://stackoverflow.com/questions/53887813/how-does-the-login-program-in-linux-invoke-a-login-shell
bash logout
add a comment |
Bash manual says
logout [n]
Exit a login shell, returning a status of n to the shell’s parent.
On a virtual console of Ubuntu, I first log in, and in the login shell, run:
$ pstree -paus $$
systemd,1 --system --deserialize 19
`-login,30488 -p --
`-bash,31728,t
`-pstree,31774 -paus 31728
and then run logout
, and all the processes starting from login,30488
till below disappear, more than just "return to the shell's parent" which is thelogin
process.
In a login bash shell , does bash builtin commandlogout
log out of the OS, not just exit the shell?
Does exiting a login shell (not necessarily by logout
, but also any other way, such as bash builtin exit
among others) necessarily lead to logging out of the OS?
May I also ask what logging out of OS means?
Thanks.
Extended to: https://stackoverflow.com/questions/53887813/how-does-the-login-program-in-linux-invoke-a-login-shell
bash logout
Bash manual says
logout [n]
Exit a login shell, returning a status of n to the shell’s parent.
On a virtual console of Ubuntu, I first log in, and in the login shell, run:
$ pstree -paus $$
systemd,1 --system --deserialize 19
`-login,30488 -p --
`-bash,31728,t
`-pstree,31774 -paus 31728
and then run logout
, and all the processes starting from login,30488
till below disappear, more than just "return to the shell's parent" which is thelogin
process.
In a login bash shell , does bash builtin commandlogout
log out of the OS, not just exit the shell?
Does exiting a login shell (not necessarily by logout
, but also any other way, such as bash builtin exit
among others) necessarily lead to logging out of the OS?
May I also ask what logging out of OS means?
Thanks.
Extended to: https://stackoverflow.com/questions/53887813/how-does-the-login-program-in-linux-invoke-a-login-shell
bash logout
bash logout
edited 14 hours ago
asked yesterday
Tim
25.6k74245449
25.6k74245449
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
In bash
speak, "login shell" means a shell invoked with the -l
flag, or where the first character of argument 0 begins with a -
. (See man bash
INVOCATION section).
In your example, you can see process 31728 is called -bash
, so begins with a -
and so was invoked as a login shell.
logout
simply exits a login shell.
So if you run bash -l
and then logout
you'll find yourself back at the calling shell.
$ echo $$
32145
$ bash -l
bash-4.2$ logout
$ echo $$
32145
Now the login
program (process 30488 in your example) waits for the child shell to exit, then performs some cleanup actions (eg wtmp
, utmp
) then exits. That is why you no longer see this process after running logout
.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f490251%2fdoes-exiting-a-login-shell-necessarily-log-out-of-the-os%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
In bash
speak, "login shell" means a shell invoked with the -l
flag, or where the first character of argument 0 begins with a -
. (See man bash
INVOCATION section).
In your example, you can see process 31728 is called -bash
, so begins with a -
and so was invoked as a login shell.
logout
simply exits a login shell.
So if you run bash -l
and then logout
you'll find yourself back at the calling shell.
$ echo $$
32145
$ bash -l
bash-4.2$ logout
$ echo $$
32145
Now the login
program (process 30488 in your example) waits for the child shell to exit, then performs some cleanup actions (eg wtmp
, utmp
) then exits. That is why you no longer see this process after running logout
.
add a comment |
In bash
speak, "login shell" means a shell invoked with the -l
flag, or where the first character of argument 0 begins with a -
. (See man bash
INVOCATION section).
In your example, you can see process 31728 is called -bash
, so begins with a -
and so was invoked as a login shell.
logout
simply exits a login shell.
So if you run bash -l
and then logout
you'll find yourself back at the calling shell.
$ echo $$
32145
$ bash -l
bash-4.2$ logout
$ echo $$
32145
Now the login
program (process 30488 in your example) waits for the child shell to exit, then performs some cleanup actions (eg wtmp
, utmp
) then exits. That is why you no longer see this process after running logout
.
add a comment |
In bash
speak, "login shell" means a shell invoked with the -l
flag, or where the first character of argument 0 begins with a -
. (See man bash
INVOCATION section).
In your example, you can see process 31728 is called -bash
, so begins with a -
and so was invoked as a login shell.
logout
simply exits a login shell.
So if you run bash -l
and then logout
you'll find yourself back at the calling shell.
$ echo $$
32145
$ bash -l
bash-4.2$ logout
$ echo $$
32145
Now the login
program (process 30488 in your example) waits for the child shell to exit, then performs some cleanup actions (eg wtmp
, utmp
) then exits. That is why you no longer see this process after running logout
.
In bash
speak, "login shell" means a shell invoked with the -l
flag, or where the first character of argument 0 begins with a -
. (See man bash
INVOCATION section).
In your example, you can see process 31728 is called -bash
, so begins with a -
and so was invoked as a login shell.
logout
simply exits a login shell.
So if you run bash -l
and then logout
you'll find yourself back at the calling shell.
$ echo $$
32145
$ bash -l
bash-4.2$ logout
$ echo $$
32145
Now the login
program (process 30488 in your example) waits for the child shell to exit, then performs some cleanup actions (eg wtmp
, utmp
) then exits. That is why you no longer see this process after running logout
.
edited yesterday
Stephen Kitt
163k24362440
163k24362440
answered yesterday
Stephen Harris
24.4k24477
24.4k24477
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f490251%2fdoes-exiting-a-login-shell-necessarily-log-out-of-the-os%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown