【发布时间】:2018-04-11 08:04:50
【问题描述】:
我已将 jenkins 用户添加为拥有所有权限。
jenkins ALL=(ALL) NOPASSWD: ALL
还把pm2安装为全局,pm2需要运行命令
sudo npm start
由于构建过程需要创建一些目录,如果我在 app1 目录中运行sudo npm start,它可以完美运行,但是使用 pm2 命令会引发访问错误
sudo pm2 start config.js
config.js
module.exports = {
apps : [{
name : "app1",
cwd : "./my-dir/app1,
script : "sudo npm",
args : "start"
},{
name : "app2",
cwd : "./my-dir/app2",
script : "npm",
args : "start"
}]
}
是pm2权限还是用户权限出错?
【问题讨论】:
-
你找到解决办法了吗?
-
pm2 进程在每个用户下单独运行,所以需要以 jenkins 用户身份启动 pm2 进程,安装 jenkins 时会创建该进程,还要检查 jenkins 的 sudo 权限,以便它可以创建工作空间目录如果要自定义目标路径。注意:如果同一进程在其他用户下运行,请先删除冲突进程,然后在 jenkins 用户下启动 config.js 文件
-
给詹金斯root权限不是很糟糕吗?
-
允许具有有限权限的组创建文件并让 jerkins 成为其一部分,
-
在我的情况下,我有一个 Root 用户,它为其他应用程序启动 pm2。 Jenkins 也需要它,但是当 Jenkins 使用 sudo 时我不需要。我不明白你的评论,如果你能尝试用更详细的解释会很酷
标签: node.js ubuntu jenkins pm2