如果调用以下 git post-receive 钩子,我的服务器将引发错误:
#!/bin/sh
#
pm2 start main.js --name powerapp
如果将命令逐个输入到终端中,它将起作用。那么我做错了什么?
错误:
remote: fs.js:642
remote: return binding.mkdir(pathModule._makeLong(path),
remote: ^
remote: Error: EACCES, permission denied '/etc/.pm2'
remote: at Object.fs.mkdirSync (fs.js:642:18)
remote: at Object.CLI.pm2Init (/home/nodejs/.local/lib/node_modules/pm2/lib/CLI.js:39:8)
remote: at Object.<anonymous> (/home/nodejs/.local/lib/node_modules/pm2/bin/pm2:21:5)
remote: at Module._compile (module.js:456:26)
remote: at Object.Module._extensions..js (module.js:474:10)
remote: at Module.load (module.js:356:32)
remote: at Function.Module._load (module.js:312:12)
remote: at Function.Module.runMain (module.js:497:10)
remote: at startup (node.js:119:16)
remote: at node.js:901:3
pm2 是通过 npm install pm2 -g 安装的,应该由用户“git”运行。
答案1
export PM2_HOME='/var/opt/gitlab/.pm2'
帮我搞定了。仍然怀疑我是否配置错误。