@reboot之后永远是NodeJS

问题描述

我正在与React一起工作,并且需要我的网页在重启后仍然有效。 所以在crontab之后我永远需要。

我尝试过的。

crontab -e

@reboot ~/reboot.sh
@reboot sudo service Nginx restart
#!/bin/bash
cd ~/lacirolnikdev && sudo ~/.nvm/versions/node/v14.13.1/bin/forever start -c "/.nvm/versions/node/v14.13.1/bin/npm start" .
cd ~/coinwork && sudo ~/.nvm/versions/node/v14.13.1/bin/forever start -c "/.nvm/versions/node/v14.13.1/bin/npm start" .

我尝试了绝对路径,sudo并移动到目录。 除了crontab之外,命令还可以正常工作。

谢谢你拉西

解决方法

启动后启动进程的更好方法是使用systemd单元文件,这是大多数发行版中的事实上的标准初始化守护程序。 systemd负责启动您的应用程序,能够监视崩溃并重新启动它。

在这里查看单位文件的文档: https://www.freedesktop.org/software/systemd/man/systemd.unit.html

这是nginx的示例:

/lib/systemd/system/nginx.service

[Unit]
Description=A high performance web server and a reverse proxy server
Documentation=man:nginx(8)
After=network.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target