jenkins用户启动脚本的时候,如果不是root,sudo执行命令的时候需要输入密码,但是没有终端输入sudo,所以会报一下错误:
抱歉,您必须拥有一个终端来执行 sudo
可能是因为sudo没办法输入密码,实际上并不是(实际上是因为,sudo需要终端来执行,正如字面上所说的)
那么第一个思路就是免密使用sudo了,假设我使用jenkins的账户是xdq,那么我用root账户 修改/etc/sudoers的配置,添加如下两项:
xdq ALL=(ALL) NOPASSWD: ALL
Defalults:xdq requiretty
也就是:
第一个配置是为了xdq免密使用所有命令,如果只添加了这一项,那么不可以不输入密码,但是还是会报错:抱歉,您必须拥有一个终端来执行 sudo
第二个配置:sudo命令默认是不能在后台运行的,如果需要在后台运行,就必须添加不用后台启动也就是: !requiretty(不需要终端来启动)