Reattach to child process after killing parent processHow to sync terminal session command history in bash?Creating an alias to Change Directory and have that directory be the current working directory in new terminal tabsRun bash script on startup in Linux Mint and open mate-terminal automaticallyRenaming the current directory from a shell - possible?How to kill this process in bashCannot exec /bin/false: no such file or directoryHow can I use vi to edit prompt line of a utility?urxvt -e doesn't source .zshrcProcesses PPID changed to 1 after closing parent shellViewing man pages in vim
What to wear for invited talk in Canada
Re-submission of rejected manuscript without informing co-authors
Is there a name of the flying bionic bird?
"listening to me about as much as you're listening to this pole here"
Prime joint compound before latex paint?
Why is my log file so massive? 22gb. I am running log backups
Why did the Germans forbid the possession of pet pigeons in Rostov-on-Don in 1941?
A poker game description that does not feel gimmicky
Patience, young "Padovan"
Is Social Media Science Fiction?
Copycat chess is back
Is "plugging out" electronic devices an American expression?
COUNT(*) or MAX(id) - which is faster?
Finding files for which a command fails
How to answer pointed "are you quitting" questioning when I don't want them to suspect
If a centaur druid Wild Shapes into a Giant Elk, do their Charge features stack?
Unbreakable Formation vs. Cry of the Carnarium
What is the meaning of "of trouble" in the following sentence?
Why is the design of haulage companies so “special”?
Domain expired, GoDaddy holds it and is asking more money
Can I legally use front facing blue light in the UK?
I’m planning on buying a laser printer but concerned about the life cycle of toner in the machine
How to make payment on the internet without leaving a money trail?
What does "enim et" mean?
Reattach to child process after killing parent process
How to sync terminal session command history in bash?Creating an alias to Change Directory and have that directory be the current working directory in new terminal tabsRun bash script on startup in Linux Mint and open mate-terminal automaticallyRenaming the current directory from a shell - possible?How to kill this process in bashCannot exec /bin/false: no such file or directoryHow can I use vi to edit prompt line of a utility?urxvt -e doesn't source .zshrcProcesses PPID changed to 1 after closing parent shellViewing man pages in vim
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
So I'm using the terminal file explorer vifm
and especially have a hotkey to open a shell in the current directory.
nnoremap s :shell<cr>
However, when I exit
this shell, I get back to vifm
. But I don't want to have vifm
still open after going to the shell. I want to kill vifm
and afterwards when I exit
the terminal, it should bring me to the grandparent process or kill the terminal emulator. I tried stuff like
nnoremap s :!./testscript.sh<cr>
where testscript.sh contains:
#!/bin/sh
zsh &
kill $PPID
, but I always get an error code 1 from the last command when doing this. However, the grandparent terminal opens (not in the current directory of vifm) without a child being created. Changing the script to
#!/bin/sh
zsh &
kill $PPID
clear
Does also give me an error code and opens the grandparent terminal (not in the current directory of vifm) and changing the script to
#!/bin/sh
kill $PPID
zsh
Makes the now open terminal buggy (buffer for letters somehow breaks).
So what is the right way to open a terminal in the current directory while closing vifm without receiving an error code or messing up the buffer?
Edit: To clearify what I need this for. I want to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this without exiting the terminal, but rather closing vifm beforehand.
Edit 2: Found the answer. It works with:
nnoremap s : let $PREVPWD = system('pwd')
| cd
| !cd $PREVPWD && exec zsh<cr>
( https://q2a.vifm.info/449/closing-vifm-while-still-opening-terminal-current-directory )
bash shell vifm
add a comment |
So I'm using the terminal file explorer vifm
and especially have a hotkey to open a shell in the current directory.
nnoremap s :shell<cr>
However, when I exit
this shell, I get back to vifm
. But I don't want to have vifm
still open after going to the shell. I want to kill vifm
and afterwards when I exit
the terminal, it should bring me to the grandparent process or kill the terminal emulator. I tried stuff like
nnoremap s :!./testscript.sh<cr>
where testscript.sh contains:
#!/bin/sh
zsh &
kill $PPID
, but I always get an error code 1 from the last command when doing this. However, the grandparent terminal opens (not in the current directory of vifm) without a child being created. Changing the script to
#!/bin/sh
zsh &
kill $PPID
clear
Does also give me an error code and opens the grandparent terminal (not in the current directory of vifm) and changing the script to
#!/bin/sh
kill $PPID
zsh
Makes the now open terminal buggy (buffer for letters somehow breaks).
So what is the right way to open a terminal in the current directory while closing vifm without receiving an error code or messing up the buffer?
Edit: To clearify what I need this for. I want to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this without exiting the terminal, but rather closing vifm beforehand.
Edit 2: Found the answer. It works with:
nnoremap s : let $PREVPWD = system('pwd')
| cd
| !cd $PREVPWD && exec zsh<cr>
( https://q2a.vifm.info/449/closing-vifm-while-still-opening-terminal-current-directory )
bash shell vifm
Would this be close enough?:nn s :shell<cr>:exit<cr>
– Mark Plotnick
Mar 28 at 14:27
That does the trick. Thank you so much! Edit: Sorry, but I still have a problem with this. My main reason for doing this is to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this withoutexit
ing to stop vifm.
– Uwe Müller
Mar 28 at 14:28
I just saw your newly-edited question. Try:nn s :cd /<cr>:shell<cr>:exit<cr>
. That may not be sufficient if you have multiple directories/panes open. Hopefully someone can come up with a solution.
– Mark Plotnick
Mar 28 at 14:41
Thanks for the answer. However, I would still like to open the shell in the current directory, not in /. But I really like the idea of this.
– Uwe Müller
Mar 28 at 14:47
Please see Can I answer my own question? Your answer should not be in the question body.
– Kamil Maciorowski
Mar 29 at 21:25
add a comment |
So I'm using the terminal file explorer vifm
and especially have a hotkey to open a shell in the current directory.
nnoremap s :shell<cr>
However, when I exit
this shell, I get back to vifm
. But I don't want to have vifm
still open after going to the shell. I want to kill vifm
and afterwards when I exit
the terminal, it should bring me to the grandparent process or kill the terminal emulator. I tried stuff like
nnoremap s :!./testscript.sh<cr>
where testscript.sh contains:
#!/bin/sh
zsh &
kill $PPID
, but I always get an error code 1 from the last command when doing this. However, the grandparent terminal opens (not in the current directory of vifm) without a child being created. Changing the script to
#!/bin/sh
zsh &
kill $PPID
clear
Does also give me an error code and opens the grandparent terminal (not in the current directory of vifm) and changing the script to
#!/bin/sh
kill $PPID
zsh
Makes the now open terminal buggy (buffer for letters somehow breaks).
So what is the right way to open a terminal in the current directory while closing vifm without receiving an error code or messing up the buffer?
Edit: To clearify what I need this for. I want to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this without exiting the terminal, but rather closing vifm beforehand.
Edit 2: Found the answer. It works with:
nnoremap s : let $PREVPWD = system('pwd')
| cd
| !cd $PREVPWD && exec zsh<cr>
( https://q2a.vifm.info/449/closing-vifm-while-still-opening-terminal-current-directory )
bash shell vifm
So I'm using the terminal file explorer vifm
and especially have a hotkey to open a shell in the current directory.
nnoremap s :shell<cr>
However, when I exit
this shell, I get back to vifm
. But I don't want to have vifm
still open after going to the shell. I want to kill vifm
and afterwards when I exit
the terminal, it should bring me to the grandparent process or kill the terminal emulator. I tried stuff like
nnoremap s :!./testscript.sh<cr>
where testscript.sh contains:
#!/bin/sh
zsh &
kill $PPID
, but I always get an error code 1 from the last command when doing this. However, the grandparent terminal opens (not in the current directory of vifm) without a child being created. Changing the script to
#!/bin/sh
zsh &
kill $PPID
clear
Does also give me an error code and opens the grandparent terminal (not in the current directory of vifm) and changing the script to
#!/bin/sh
kill $PPID
zsh
Makes the now open terminal buggy (buffer for letters somehow breaks).
So what is the right way to open a terminal in the current directory while closing vifm without receiving an error code or messing up the buffer?
Edit: To clearify what I need this for. I want to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this without exiting the terminal, but rather closing vifm beforehand.
Edit 2: Found the answer. It works with:
nnoremap s : let $PREVPWD = system('pwd')
| cd
| !cd $PREVPWD && exec zsh<cr>
( https://q2a.vifm.info/449/closing-vifm-while-still-opening-terminal-current-directory )
bash shell vifm
bash shell vifm
edited Mar 29 at 13:15
Uwe Müller
asked Mar 28 at 13:03
Uwe MüllerUwe Müller
11
11
Would this be close enough?:nn s :shell<cr>:exit<cr>
– Mark Plotnick
Mar 28 at 14:27
That does the trick. Thank you so much! Edit: Sorry, but I still have a problem with this. My main reason for doing this is to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this withoutexit
ing to stop vifm.
– Uwe Müller
Mar 28 at 14:28
I just saw your newly-edited question. Try:nn s :cd /<cr>:shell<cr>:exit<cr>
. That may not be sufficient if you have multiple directories/panes open. Hopefully someone can come up with a solution.
– Mark Plotnick
Mar 28 at 14:41
Thanks for the answer. However, I would still like to open the shell in the current directory, not in /. But I really like the idea of this.
– Uwe Müller
Mar 28 at 14:47
Please see Can I answer my own question? Your answer should not be in the question body.
– Kamil Maciorowski
Mar 29 at 21:25
add a comment |
Would this be close enough?:nn s :shell<cr>:exit<cr>
– Mark Plotnick
Mar 28 at 14:27
That does the trick. Thank you so much! Edit: Sorry, but I still have a problem with this. My main reason for doing this is to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this withoutexit
ing to stop vifm.
– Uwe Müller
Mar 28 at 14:28
I just saw your newly-edited question. Try:nn s :cd /<cr>:shell<cr>:exit<cr>
. That may not be sufficient if you have multiple directories/panes open. Hopefully someone can come up with a solution.
– Mark Plotnick
Mar 28 at 14:41
Thanks for the answer. However, I would still like to open the shell in the current directory, not in /. But I really like the idea of this.
– Uwe Müller
Mar 28 at 14:47
Please see Can I answer my own question? Your answer should not be in the question body.
– Kamil Maciorowski
Mar 29 at 21:25
Would this be close enough?
:nn s :shell<cr>:exit<cr>
– Mark Plotnick
Mar 28 at 14:27
Would this be close enough?
:nn s :shell<cr>:exit<cr>
– Mark Plotnick
Mar 28 at 14:27
That does the trick. Thank you so much! Edit: Sorry, but I still have a problem with this. My main reason for doing this is to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this without
exit
ing to stop vifm.– Uwe Müller
Mar 28 at 14:28
That does the trick. Thank you so much! Edit: Sorry, but I still have a problem with this. My main reason for doing this is to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this without
exit
ing to stop vifm.– Uwe Müller
Mar 28 at 14:28
I just saw your newly-edited question. Try
:nn s :cd /<cr>:shell<cr>:exit<cr>
. That may not be sufficient if you have multiple directories/panes open. Hopefully someone can come up with a solution.– Mark Plotnick
Mar 28 at 14:41
I just saw your newly-edited question. Try
:nn s :cd /<cr>:shell<cr>:exit<cr>
. That may not be sufficient if you have multiple directories/panes open. Hopefully someone can come up with a solution.– Mark Plotnick
Mar 28 at 14:41
Thanks for the answer. However, I would still like to open the shell in the current directory, not in /. But I really like the idea of this.
– Uwe Müller
Mar 28 at 14:47
Thanks for the answer. However, I would still like to open the shell in the current directory, not in /. But I really like the idea of this.
– Uwe Müller
Mar 28 at 14:47
Please see Can I answer my own question? Your answer should not be in the question body.
– Kamil Maciorowski
Mar 29 at 21:25
Please see Can I answer my own question? Your answer should not be in the question body.
– Kamil Maciorowski
Mar 29 at 21:25
add a comment |
0
active
oldest
votes
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%2f509213%2freattach-to-child-process-after-killing-parent-process%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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.
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%2f509213%2freattach-to-child-process-after-killing-parent-process%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
-bash, shell, vifm
Would this be close enough?
:nn s :shell<cr>:exit<cr>
– Mark Plotnick
Mar 28 at 14:27
That does the trick. Thank you so much! Edit: Sorry, but I still have a problem with this. My main reason for doing this is to prevent a usb-stick being busy. If the current shell isn't using the usb-stick anymore, but vifm is still inside a directory of the usb-stick, I can't unmount the stick. And I want to do this without
exit
ing to stop vifm.– Uwe Müller
Mar 28 at 14:28
I just saw your newly-edited question. Try
:nn s :cd /<cr>:shell<cr>:exit<cr>
. That may not be sufficient if you have multiple directories/panes open. Hopefully someone can come up with a solution.– Mark Plotnick
Mar 28 at 14:41
Thanks for the answer. However, I would still like to open the shell in the current directory, not in /. But I really like the idea of this.
– Uwe Müller
Mar 28 at 14:47
Please see Can I answer my own question? Your answer should not be in the question body.
– Kamil Maciorowski
Mar 29 at 21:25