ÔõÑùʹÓÃSystemdºÍCrontabÔÚLinuxϵͳÖÐ×Ô¶¯ÖØÆôÓ¦ÓóÌÐò
ÔõÑùʹÓÃSystemdºÍCrontabÔÚLinuxϵͳÖÐ×Ô¶¯ÖØÆôÓ¦ÓóÌÐò
ÔÚLinuxϵͳÖУ¬SystemdºÍCrontabÊÇÁ½¸öºÜÊÇÖ÷ÒªµÄ¹¤¾ß¡£SystemdÊÇÒ»¸öϵͳºÍЧÀÍÖÎÀíÆ÷£¬¶øCrontabÔòÊÇÒ»¸öÓÃÓÚÔÚָ׼ʱ¼ä×Ô¶¯Ö´ÐÐʹÃüµÄ¹¤¾ß¡£±¾ÎĽ«ÒÔÒ»¸öÏêϸµÄÀý×Ó£¬ÏÈÈÝÔõÑùʹÓÃSystemdºÍCrontabÔÚLinuxϵͳÖÐ×Ô¶¯ÖØÆôÓ¦ÓóÌÐò¡£
¼ÙÉèÎÒÃÇÓÐÒ»¸öNode.jsÓ¦ÓóÌÐò£¬ÎÒÃÇÏëÒªÔÚЧÀÍÖØÊÓÆôºó×Ô¶¯Æô¶¯¸ÃÓ¦ÓóÌÐò¡£Ê×ÏÈ£¬ÎÒÃÇÐèÒª½¨ÉèÒ»¸öSystemdЧÀÍÀ´ÖÎÀíÎÒÃǵÄÓ¦ÓóÌÐò¡£·¿ªÒ»¸öÎı¾±à¼Æ÷£¬²¢½¨ÉèÒ»¸öÃûΪmyapp.serviceµÄÎļþ¡£ÔÚÎļþÖУ¬Ð´ÈëÒÔÏÂÄÚÈÝ£º
[Unit] Description=My Node.js App After=network.target [Service] ExecStart=/usr/bin/node /path/to/app.js WorkingDirectory=/path/to/app Restart=always User=nobody Group=nogroup Environment=PATH=/usr/bin:/usr/local/bin Environment=NODE_ENV=production [Install] WantedBy=multi-user.target
µÇ¼ºó¸´ÖÆ
Ú¹ÊÍÒ»ÏÂÕâ¸öÎļþµÄ¸÷¸ö²¿·Ö¡£Unit²¿·Ö½ç˵ÁËЧÀ͵ÄÐÎòºÍÒÀÀµÏî¡£Service²¿·Ö½ç˵ÁËÓ¦ÓóÌÐòµÄÆô¶¯ÏÂÁî¡¢ÊÂÇéĿ¼¡¢ÖØÆôÕ½ÂÔÒÔ¼°Ó¦ÓóÌÐòÔËÐеÄÓû§ºÍ×é¡£Install²¿·Ö½ç˵Á˸ÃЧÀÍÓ¦¸ÃÔÚÄÄЩĿµÄÖÐÆôÓá£
ÉúÑIJ¢¹Ø±ÕÎļþ¡£½ÓÏÂÀ´£¬½«¸ÃÎļþÒƶ¯µ½SystemdµÄЧÀÍĿ¼ÖС£Ö´ÐÐÒÔÏÂÏÂÁ
sudo mv myapp.service /etc/systemd/system/
µÇ¼ºó¸´ÖÆ
ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔʹÓÃSystemdÀ´Æô¶¯¡¢×èÖ¹ºÍÖØÆôÓ¦ÓóÌÐòÁË¡£Ö´ÐÐÒÔÏÂÏÂÁîÀ´Æô¶¯Ó¦ÓóÌÐò£º
sudo systemctl start myapp
µÇ¼ºó¸´ÖÆ
Ö´ÐÐÒÔÏÂÏÂÁîÀ´×èÖ¹Ó¦ÓóÌÐò£º
sudo systemctl stop myapp
µÇ¼ºó¸´ÖÆ
Ö´ÐÐÒÔÏÂÏÂÁîÀ´ÖØÆôÓ¦ÓóÌÐò£º
sudo systemctl restart myapp
µÇ¼ºó¸´ÖÆ
½ÓÏÂÀ´£¬ÎÒÃǽ«Ê¹ÓÃCrontabÀ´ÉèÖð´ÆÚÖØÆôÓ¦ÓóÌÐò¡£·¿ªÖնˣ¬²¢Ö´ÐÐÒÔÏÂÏÂÁîÀ´±à¼Ä¿½ñÓû§µÄCrontab£º
crontab -e
µÇ¼ºó¸´ÖÆ
ÔÚ±à¼Æ÷ÖУ¬Ð´ÈëÒÔÏÂÄÚÈÝ£º
0 3 * * * sudo systemctl restart myapp
µÇ¼ºó¸´ÖÆ
Õâ¸öCrontabÌõÄ¿ÌåÏÖÌìÌìÆÆÏþ3µãÖØÆôÓ¦ÓóÌÐò¡£Äã¿ÉÒÔƾ֤×Ô¼ºµÄÐèÇóÐÞ¸ÄÕâ¸öʱ¼ä¡£
ÉúÑIJ¢¹Ø±ÕÎļþ¡£ÏÖÔÚ£¬ÌìÌìÆÆÏþ3µã¶¼»á×Ô¶¯ÖØÆôÓ¦ÓóÌÐò¡£
ÖÁ´Ë£¬ÎÒÃÇÒѾÏÈÈÝÁËÔõÑùʹÓÃSystemdºÍCrontabÔÚLinuxϵͳÖÐ×Ô¶¯ÖØÆôÓ¦ÓóÌÐò¡£Í¨¹ýʹÓÃSystemd£¬ÎÒÃÇ¿ÉÒÔÀû±ãµØÖÎÀíÓ¦ÓóÌÐòµÄÆô¶¯¡¢×èÖ¹ºÍÖØÆô¡£¶øͨ¹ýʹÓÃCrontab£¬ÎÒÃÇ¿ÉÒÔ°´ÆÚÖØÆôÓ¦ÓóÌÐò£¬´Ó¶øÈ·±£ËüµÄÎȹÌÐÔºÍÐÔÄÜ¡£Ï£ÍûÕâƪÎÄÕ¶ÔÄãÓÐËù×ÊÖú£¡
ÒÔÉϾÍÊÇÔõÑùʹÓÃSystemdºÍCrontabÔÚLinuxϵͳÖÐ×Ô¶¯ÖØÆôÓ¦ÓóÌÐòµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡