PM2 运行Bash脚本
pm2 list # 进程列表
pm2 monit # 实时监控
pm2 logs # 日志输出
pm2 start app.js
pm2 start app.sh
pm2 start app.js –name my-app
pm2 start run-script-node.js –name sak-rezedge-com
pm2 restart sak-rezedge-com
pm2 stop my-app
pm2 delete my-app
脚本示例
updateblog 脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| const express = require('express'); const { spawn } = require('child_process');
const app = express(); const PORT = 3764;
app.use(express.json());
app.get('/updateblog', (req, res) => { const scriptPath = "/www/updateBlog.sh"; const child = spawn('bash', [scriptPath]);
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
child.stdout.on('data', (data) => { res.write(data.toString()); });
child.stderr.on('data', (data) => { res.write(`ERR: ${data.toString()}`); });
child.on('close', (code) => { res.end(`\nScript finished with code ${code}\n`); }); });
app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); });
|
存储库更新脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| cd /opt/1panel/www/sites/blog.rezedge.com/source/_posts
BRANCH=master
LOCAL=$(git log $BRANCH -n 1 --pretty=format:"%H") REMOTE=$(git log remotes/origin/$BRANCH -n 1 --pretty=format:"%H")
if [ $LOCAL = $REMOTE ]; then echo "Up-to-date" else echo "Need update" git fetch --all git reset --hard origin/master git pull fi echo "Start generate" cd /opt/1panel/www/sites/blog.rezedge.com/ pnpm hexo generate rm -r ./index/ mv ./public/ ./index/
|