[?????????]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?????????????????????????????????"????????????"??????????????????

"????????????"??????????????????

  1. ???????????? session ??????????????????????????????stdout?????????????????????stderr????????????????????????????????????????????????????????????????????????????????????
  2. ?????????????????? session ??????????????????stdin?????????????????????????????????????????????????????????????????????????????????????????????????????????halt??????

???????????????"????????????"???"????????????"????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

??????SIGHUP??????

??????"????????????"?????????????????????????????????????????????????????????????????????????????? session ?????????"????????????"???????????????????????????

Linux???????????????????????????

  1. ?????????????????? session
  2. ???????????? session ??????SIGHUP??????
  3. session ???SIGHUP???????????????????????????
  4. ???????????????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 ???????????????????????????的主要内容,如果未能解决你的问题,请参考以下文章