Linux์์ ๋ถํ ์ด ์๋ฃ๋ ํ npm์ ์๋ ์์ํ๋ ๊ถ์ฅ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๋๋ init.d๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ฒ์ ์๋ํ์ง๋ง ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค.
pm2๋ผ๋ npm ํจํค์ง๋ฅผ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
npm install pm2 -g
์ค์นํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ค์์ ์คํํ์ญ์์ค.
pm2 startup
pm2 ์ถ๋ ฅ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ ๋ฃ์ผ์ญ์์ค.
pm2 start app.js --name OctoFarm
pm2 save
https://pm2.keymetrics.io/docs/usage/startup/
์ฌ๊ธฐ์ ๋ ๋ง์ ์ ๋ณด๊ฐ ์์ต๋๋ค. ๋งํ๋ฉด ์๋ ค์ฃผ์ธ์.
1.1.5๋ ์ข ์์ฑ์ผ๋ก pm2์ ํจ๊ป ์ ๊ณต๋๋ฉฐ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์คํ๋ฉ๋๋ค. ๋ถํ ์ ์์ ๋ช ๋ น์ ํ์ฑํ ํ ์ ์์ผ๋ฏ๋ก ๋ชจ๋ ์๋์ผ๋ก ์ํ๋์ง๋ง ์์ง ์์ธํ ์ดํด ๋ณด์ง๋ ์์์ต๋๋ค.
Ubuntu๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๊ณต์ ์ผ๋ก systemd ์๋น์ค ํ์ผ์ ์ฌ์ฉํ์ต๋๋ค. James๊ฐ ๋งํ๋ฏ์ด ์ต์ ๋ฒ์ ์ pm2์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. pm2๋ฅผ ์ฌ์ฉํ๋ฉด pm2 startup
๋ฅผ ์คํํ ์ ์์ผ๋ฉฐ init ์์คํ
์ ๊ฐ์งํ๊ณ ์์ ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ์คํํ ๋ช
๋ น์ ์ถ๋ ฅํฉ๋๋ค. ๋ฐฉ๊ธ ํด๋๊ณ ๊ฝค ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ ์ฒด ๊ณต๊ฐ : ์ค๋ ์ ์๋ pm2์ ๋ํด ๋ค์ด ๋ณธ ์ ์ด ์์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ์กฐ์ฌ๋ฅผํด์ผํ๊ณ ์ด๊ฒ์ด ์ ๊ฐ ์ฐพ์ ๊ฒ๊ณผ ์ ๊ฐ ํ ์ผ์ด๋ฉฐ ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
pm2 startup
์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํฉ๋๋ค.
ubuntu<strong i="10">@octofarm</strong>:~$ OctoFarm/node_modules/pm2/bin/pm2 startup
[PM2] Init System found: systemd
ubuntu
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
๊ทธ๋ฐ ๋ค์ ๋ช ๋ น์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋งํ์ต๋๋ค.
ubuntu<strong i="14">@octofarm</strong>:~$ sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target
[Service]
Type=forking
User=ubuntu
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/ubuntu/.pm2
PIDFile=/home/ubuntu/.pm2/pm2.pid
Restart=on-failure
ExecStart=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 resurrect
ExecReload=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 kill
[Install]
WantedBy=multi-user.target
Target path
/etc/systemd/system/pm2-ubuntu.service
Command list
[ 'systemctl enable pm2-ubuntu' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-ubuntu.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-ubuntu...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-ubuntu.service โ /etc/systemd/system/pm2-ubuntu.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save
[PM2] Remove init script via:
$ pm2 unstartup systemd
๋ ๋ถ ๋ชจ๋์๊ฒ ๋น ๋ฅธ ์๋ต์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ค๋ ๋์ค์ ์๋ํด ๋ณด๊ฒ ์ต๋๋ค. ๋๋ ๋ฆฌ๋ ์ค ์์คํ ์ ์ข์ํ๊ณ ์ซ์ดํ๋ค. ๋ชจ๋ ๊ฒ์ ํ ์์๋ ์ฝ 10 ๊ฐ์ง ๋ฐฉ๋ฒ. ์ ๋ 1980 ๋ ๋ ํ๋ฐ์ BSD Unix๋ก ์์ํ์ต๋๋ค.
๋ฌธ์ ์์ต๋๋ค. README / Wiki์ ๋ช ๊ฐ์ง ๋ฉ๋ชจ๋ฅผ ์ถ๊ฐํ๋๋ก ์๊ธฐ์ํค๊ธฐ ์ํด ์ง๊ธ์ ์ด์ด ๋๊ฒ ์ต๋๋ค.
์ด ๊ต์ฐจ ํ๋ซํผ์ ์ํํ๊ธฐ ์ํด ์ถ๊ฐ ๋ ์ค์น ๋ฌธ์
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Ubuntu๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๊ณต์ ์ผ๋ก systemd ์๋น์ค ํ์ผ์ ์ฌ์ฉํ์ต๋๋ค. James๊ฐ ๋งํ๋ฏ์ด ์ต์ ๋ฒ์ ์ pm2์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. pm2๋ฅผ ์ฌ์ฉํ๋ฉด
pm2 startup
๋ฅผ ์คํํ ์ ์์ผ๋ฉฐ init ์์คํ ์ ๊ฐ์งํ๊ณ ์์ ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ์คํํ ๋ช ๋ น์ ์ถ๋ ฅํฉ๋๋ค. ๋ฐฉ๊ธ ํด๋๊ณ ๊ฝค ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.์ ์ฒด ๊ณต๊ฐ : ์ค๋ ์ ์๋ pm2์ ๋ํด ๋ค์ด ๋ณธ ์ ์ด ์์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ์กฐ์ฌ๋ฅผํด์ผํ๊ณ ์ด๊ฒ์ด ์ ๊ฐ ์ฐพ์ ๊ฒ๊ณผ ์ ๊ฐ ํ ์ผ์ด๋ฉฐ ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
pm2 startup
์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํฉ๋๋ค.๊ทธ๋ฐ ๋ค์ ๋ช ๋ น์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋งํ์ต๋๋ค.