在CentOS上配置Node.js的定時任務,通常使用systemd
服務或者cron
來實現。下面分別介紹這兩種方法。
systemd
服務創建Node.js腳本
假設你已經有一個Node.js腳本,例如/home/user/my-script.js
。
創建systemd
服務文件
在/etc/systemd/system/
目錄下創建一個新的服務文件,例如my-script.service
:
sudo nano /etc/systemd/system/my-script.service
在文件中添加以下內容:
[Unit]
Description=My Node.js Script
After=network.target
[Service]
ExecStart=/usr/bin/node /home/user/my-script.js
WorkingDirectory=/home/user
User=user
Restart=always
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
解釋:
Description
:服務的描述。After
:指定服務啟動的順序。ExecStart
:指定啟動服務的命令。WorkingDirectory
:指定工作目錄。User
:指定運行服務的用戶。Restart
:指定服務重啟策略。Environment
:設置環境變量。重新加載systemd
配置
sudo systemctl daemon-reload
啟動服務
sudo systemctl start my-script.service
設置開機自啟動
sudo systemctl enable my-script.service
查看服務狀態
sudo systemctl status my-script.service
cron
編輯crontab
文件
使用crontab -e
命令編輯當前用戶的crontab
文件:
crontab -e
添加定時任務
在打開的編輯器中添加一行,指定定時任務的執行時間和命令。例如,每天凌晨1點執行Node.js腳本:
0 1 * * * /usr/bin/node /home/user/my-script.js >> /var/log/my-script.log 2>&1
解釋:
0 1 * * *
:表示每天凌晨1點執行。/usr/bin/node /home/user/my-script.js
:執行Node.js腳本的命令。>> /var/log/my-script.log 2>&1
:將標準輸出和標準錯誤輸出重定向到日志文件。保存并退出
保存文件并退出編輯器。
systemd
服務:適用于需要長時間運行且需要開機自啟動的服務。cron
:適用于定時執行的任務,更加靈活。根據你的需求選擇合適的方法來配置Node.js的定時任務。