wsl 装的 Ubuntu20.04 版本,用来跑一个 linux 程序,用的命令后面跟&符号保持程序运行,之前一切正常,有一段时间没打开过窗口了,程序也一直在跑着,今天用了几次 wsl 然后发现跑的程序连不上了,重新打开看了下进程没了,以前只要电脑没重启不会这样,然后重复尝试了几次发现了以前没遇到的情况,程序跑起来后关掉窗口,一切正常,如果再次打开 wsl 的窗口,就会发现进程又没了,反复试了几次,都是只要重新打开窗口进程就没了,如果不重新打开,程序就能一直正常运行,不知道发生了什么,以前没遇到过这种状况。
1
hallwoodzhang 2023-04-13 16:27:40 +08:00
会不会是进程运行依赖终端 session?
|
2
BeautifulSoap 2023-04-13 16:30:50 +08:00
目测 session 的问题。加 & 本来就不是一个稳定的方法,不保证能稳定运行。
学一下 tmux 就能解决问题了。当然 nohup 这种简单粗暴的东西倒也是可以 |
3
peasant OP |
4
Jamy 2023-04-13 16:59:25 +08:00
使用 screen 命令,新建个虚拟终端,不重启就没事.
|
5
peasant OP |
6
hallwoodzhang 2023-04-13 17:06:42 +08:00
@peasant
要 daemonize 进程需要 fork 两次,这样进程才能摆脱 session 的影响 https://zhuanlan.zhihu.com/p/44874925 https://stackoverflow.com/questions/881388/what-is-the-reason-for-performing-a-double-fork-when-creating-a-daemon |
7
zed1018 2023-04-13 17:10:25 +08:00
|