[?????????]Linux ???????????????????????????
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[?????????]Linux ???????????????????????????相关的知识,希望对你有一定的参考价值。
?????????head systemd ?????? gnu oca code ?????? ????????? ??????
"????????????"???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
?????????????????????????????????"????????????"??????????????????
"????????????"??????????????????
- ???????????? 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 & $ disown
??????????????????????????????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 & $ disown
?????????????????? session?????????5000?????????????????????????????????
????????????"????????????"????????? I/O ??????????????? session???disown
???????????????????????????????????????"????????????"???????????? I/O?????????????????????????????????????????????????????????????????????
????????????????????????????????????"????????????"????????? I/O ??????????????????
$ node server.js > stdout.txt 2> stderr.txt < /dev/null & $ disown
???????????????????????????????????????????????????
??????nohup ??????
?????????disown
???????????????????????????nohup
???
$ nohup node server.js &
nohup
?????????server.js
????????????????????????
- ??????
SIGHUP
???????????????????????????- ???????????????????????????????????????????????????????????????????????????????????????
- ?????????????????????????????????????????????
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 # ????????????????????????????????????????????????????????? $ forever -w server.js # -m ?????????????????????????????? $ forever -m 5 server.js # ?????????????????? $ forever list
nodemon
?????????????????????????????????????????????????????? watch ????????????????????????????????????????????????????????????
# ??????????????????????????????????????? $ nodemon server.js ??? ??????????????????????????? $ nodemon --watch app --watch libs server.js
pm2 ????????????????????????????????????????????????????????????????????????????????????
# ???????????? $ pm2 start app.js # ????????????????????????????????????CPU??????????????????????????????????????? $ pm2 start app.js -i max # ?????????????????? $ pm2 list # ?????????????????? $ pm2 stop 0 ??? ?????????????????? $ pm2 restart 0 # ?????????????????? $ pm2 delete 0 # ???????????????????????????????????????????????? $ pm2 save # ????????????????????????????????? $ pm2 monit # ?????????????????? $ pm2 logs # ???????????? $ pm2 dump # ?????????????????? $ pm2 kill $ pm2 resurect # ??????web?????? http://localhost:9615 $ pm2 web
??????Systemd
???????????????????????????Linux?????????????????????????????????????????? Systemd ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? Systemd ??????????????????????????????????????????????????????????????????
????????????????????????????????? Systemd???
?????????
以上是关于[?????????]Linux ???????????????????????????的主要内容,如果未能解决你的问题,请参考以下文章