Shell 当前运行进程怎么分离

71 天前
 rwqkobe169

我在命令行中运行很长的程序时,我的命令行如果退出了,当前运行的进程也会退出,有没有什么办法能让这两个进程分离?

2010 次点击
所在节点    Linux
18 条回复
yumusb
71 天前
screen 、nohup
rwqkobe169
71 天前
@yumusb 我的意思是我这个命令已经执行了,但我远程连接的命令行需要断开,但这个进程不能断,还得继续跑
julyclyde
71 天前
先 ctrl+Z 暂停(顺便返回 shell )
然后 bg 放后台继续
最后 disown 让 shell 不再给它发 HUP
rwqkobe169
71 天前
@julyclyde 这个应该可以,前两步我之前都做过了,但我一直忘了怎么让进程分离,感谢
ghjh
71 天前
screen 或 nohup
或者直接命令后面拼 & disown
rwqkobe169
71 天前
@ghjh 好的,感谢
gam2046
71 天前
tmux 习惯以后,我无论敲什么都先 tmux ,事后从其他地方连上还能恢复。而且本身支持分屏,对于 shell 工具的需求就很低了。用命令行都足够
Azone
71 天前
zellij 更简单
Jirajine
71 天前
tmux
在 tmux 里面执行你的命令
按下 Ctrl+b 再按 d
然后就可以退出了,再次需要查看输出时
tmux a

以上这些是默认零配置的键位
yangg
71 天前
@gam2046 自动 tmux 习惯后我都不知道还有楼主这个需求
passworderror
71 天前
tmux +1
CEBBCAT
71 天前
这种问题,Google 就能解决的。。。培养一下自己的学习能力。。。
Tiande
71 天前
tmux
cyningxu
71 天前
screen ,其实 Google 一下很容易找到答案
cxsz
71 天前
1 、执行自己的程序。例如 python xxxx.py
2 、按下 ctrl+z 暂停进程并且返回 shell 。
3 、输入 bg 命令,使暂停的进程在后台运行。
4 、输入 jobs ,记录这个进程的编号。输出内容最前面有个中括号[],里面的就是编号。
5 、输入 disown -h %上一步查到的编号,例如 disown -h %1 。
mumbler
71 天前
问 chatgpt 啊
14
71 天前
byobu
hukei
70 天前
systemd

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1019215

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX