Linux???????????????
???????????? ???????[ 2016/3/14 15:40:52 ] ?????????????? Linux
????“???????”??daemon?????????????械?????daemon????
?????????????谓???? Web ????????????????
????????????????
????Web???写?煤????????????????????????????小?
???????????????????????????????????Node???server.js?????6?小?
????var http = require('http');
????http.createServer(function(req?? res) {
????res.writeHead(200?? {'Content-Type': 'text/plain'});
????res.end('Hello World');
????}).listen(5000);
???????????????????????
????$ node server.js
?????????????????????????????????? 5000 ????????????????????????写?????????????????????????????
??????????????????????????????daemon?????????????service???????????????????
??????????????????????
?????????????????????????”??????”??foreground job???????????????写????????????????????????????????????????睢�
?????????????????????????????”???????”??background job????
????$ node server.js
?????????????尾?????????&?????????????”???????”???????????????械?”??????”???”???????”?????????ctrl + z????????bg?????y?????????”???????”??????校???
????“???????”?????????
??????械?? session ????????????????stdout??????????stderr????????????????????????????????????????????????
?????????械?? session ????????stdin?????????????????????????????????????????????????????校?halt????
?????????????”???????”??”??????”?????????????????????斜?????????????泻???????????????????????????????睢�
????????SIGHUP???
???????”???????”??????????????????????????????????????? session ???”???????”??????????校?
????Linux?????????????
????????????? session
????????? session ????SIGHUP???
????session ??SIGHUP???????????????
????????????SIGHUP??????????
??????????????????????”??????”?????? session ??????????????????????SIGHUP????
?????????”???????”?????????SIGHUP????
???????? Shell ??huponexit???????????
????$ shopt | grep huponexit
????????????????????huponexit?????????
?????????Linux?????????????????off????????session ?????????????SIGHUP??????”???????”???????????????”???????”???????? session ????????
???????disown ????
???????”???????”???”???????”?????????????械?????huponexit??????????????on????
???????????????????disown???睢�???????????????”???????”?斜??jobs???????????????????????”???????”??????????斜???校?session ???????????????SIGHUP????
????$ node server.js
???????????????????server.js??????????”???????”?斜??????????jobs??????????????????妫�??????????????
????disown???梅??????
????# ??????????????械???????
????$ disown
????# ?????????????械???????
????$ disown -r
????# ??????泻??????
????$ disown -a
????# ????????????????????????????SIGHUP???
????$ disown -h
????# ????jobId????????????????
????$ disown %2
????$ disown -h %2
?????濉�??? I/O
???????disown?????????????????????????? session ?????????????????I/O?薪???????????????
???????????????????????????????小?
????var http = require('http');
????http.createServer(function(req?? res) {
????console.log('server starts...'); // ???????
????res.writeHead(200?? {'Content-Type': 'text/plain'});
????res.end('Hello World');
????}).listen(5000);
????????????????????????disown???睢�
????$ node server.js
?????????????? session??????5000???????????????
???????????”???????”???? I/O ??????? session??disown??????懈??????????”???????”??写??? I/O????????????????????????????????小?
?????????????????????”???????”???? I/O ?????????
????$ node server.js > stdout.txt 2> stderr.txt
??????????????校?????????????????
????????nohup ????
???????斜?disown?????????????nohup??
????$ nohup node server.js
????nohup?????server.js???????????????
???????SIGHUP??????????????
??????????????y??????????????魏??????????????????
?????????????????????????nohup.out??
??????????nohup???????????????????????? session ???????
???????nohup????????????????”???????”????????????&?????
???????Screen ?????? Tmux ????
??????????路????? terminal multiplexer ????????????????????????妫�??????session??????????? Screen ????? Tmux ???睢�
??????????????? session ???妫�???????? session?????????????? session ?????????????????? session?????????????渭????????????????????????? session??
????Screen ???梅??????
????# ?????? session
????$ screen
????$ node server.js
???????????ctrl + A??ctrl + D?????????? session?????????????????鈥参�????????谢????
????$ screen -r
???????????????? session??????????????????
????$ screen -S name
????# ?谢???? session
????$ screen -r name
????$ screen -r pid_number
????# ?谐????? session
????$ screen -ls
?????????????? session?????????谢??????????ctrl + c??ctrl + d??
????Tmux ?? Screen ????????????????????梅??????
????$ tmux
????$ node server.js
????# ?????????session
????$ tmux detach
????????tmux detach???????????????Ctrl + B??d ?????????????? session??
????# ?鈥参�??????????????????蟹???session
????$ tmux attach
????????????? session????????? session ????????
????# ??? session
????$ tmux new -s session_name
????# ?谢?????? session
????$ tmux attach -t session_name
????# ?谐????? session
????$ tmux list-sessions
????# ?????? session?????????? session
????$ tmux detach
????# ?????? session
????$ tmux kill-session -t session-name
???????Node ????
???????? Node ????????????????????????????些????????????????forever??nodemon ?? pm2??
????forever ???????????????????????????????????
????# ????????????
????$ forever server.js
????# ?????????????
????$ forever start app.js
????# ?????????
????$ forever stop Id
????# ??????????
????$ forever restart Id
????# ???????????????????斜?????
??????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11