рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдмреВрдЯрдЕрдк рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдирдкреАрдПрдо рдХреЛ рдСрдЯреЛрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛ рд╣реИред рдореИрдВрдиреЗ init.d рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдХреЛрдИ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИред
рдмрд╣реБрдд рд╕реЗ npm рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ pm2 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдк 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 рдХреЗ рд╕рд╛рде рдЖ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рдЙрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рддрд╛ рд╣реИ, рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдмреВрдЯ рдкрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХрдорд╛рдВрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред
рдореИрдВ рдЙрдмрдВрдЯреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдХ рд╕рд┐рд╕реНрдЯрдордб рд╕реЗрд╡рд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЬреЗрдореНрд╕ рдмрддрд╛рддрд╛ рд╣реИ, рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рджреЛрдкрд╣рд░ 2 рдХреЗ рд╕рд╛рде рдЖ рд░рд╣рд╛ рд╣реИред PM2 рдХреЗ рд╕рд╛рде, рдЖрдк pm2 startup
рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЖрдкрдХреЗ init рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред рдореИрдВрдиреЗ рдЕрднреА рдХрд┐рдпрд╛ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкреВрд░реНрдг рдкреНрд░рдХрдЯреАрдХрд░рдг: рдореИрдВрдиреЗ рдЖрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдХрднреА рднреА рджреЛрдкрд╣рд░ 2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдпрд╣реА рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ 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 рдХреЗ рджрд╢рдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рдмреАрдПрд╕рдбреА рдпреВрдирд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА рдереАред
рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ рддрд╛рдХрд┐ рдореБрдЭреЗ рд░реАрдбрдореА/рд╡рд┐рдХреА рдореЗрдВ рдХреБрдЫ рдиреЛрдЯреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рджрд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ
рдЗрд╕ рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдбреЙрдХреНрдпреВрдордиреЗрдЯ рдЬреЛрдбрд╝реЗ рдЧрдП
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ рдЙрдмрдВрдЯреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдХ рд╕рд┐рд╕реНрдЯрдордб рд╕реЗрд╡рд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЬреЗрдореНрд╕ рдмрддрд╛рддрд╛ рд╣реИ, рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рджреЛрдкрд╣рд░ 2 рдХреЗ рд╕рд╛рде рдЖ рд░рд╣рд╛ рд╣реИред PM2 рдХреЗ рд╕рд╛рде, рдЖрдк
pm2 startup
рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЖрдкрдХреЗ init рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред рдореИрдВрдиреЗ рдЕрднреА рдХрд┐рдпрд╛ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИредрдкреВрд░реНрдг рдкреНрд░рдХрдЯреАрдХрд░рдг: рдореИрдВрдиреЗ рдЖрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдХрднреА рднреА рджреЛрдкрд╣рд░ 2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдпрд╣реА рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ
pm2 startup
рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИрдФрд░ рдлрд┐рд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕рдиреЗ рдореБрдЭрд╕реЗ рдХрд╣рд╛: