📝

個人でjenkinsを使う時には、自分のログインアカウントのuidに合わせると都合が良い。

2021/09/08に公開約1,100字

個人でもjenkinsを使ってる人は少なくないと思われるが、大抵はそのまま jenkinsアカウントで動作させてるだろう。

最近のlinuxでは起動にsystemdを使ってるが、このファイルの書き換えで、権限uidを変更して起動できる。

archlinuxの場合 /usr/lib/systemd/system/jenkins.service

/usr/lib/systemd/system/jenkins.service
[Unit]
Description=Extendable continuous integration server
After=network.target

[Service]
User=root # ここを書き換える
Type=exec
EnvironmentFile=/etc/conf.d/jenkins
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=jenkins
ExecStart=/bin/sh -c 'eval $JENKINS_COMMAND_LINE'
#MemoryLimit=768M
OOMScoreAdjust=-1000
LimitCPU=infinity
LimitFSIZE=infinity
LimitDATA=infinity
LimitCORE=0
LimitAS=infinity
LimitLOCKS=infinity

[Install]
WantedBy=multi-user.target
  • このService.User行を任意に書き換えて
  • jenkinsのworkspaceをchown したのち、
  • systemctl daemon-reload
  • systemctl restart jenkins

すればよい

小生は次のようなシェルスクリプトを愛用している。

重ねて、小生の場合jenkinsの実行プライオリティを下げている。ExecStartに適切にniceを挟めばよい。

sudo sed -i.bak -e "/User=/s/jenkins/$USER/" /usr/lib/systemd/system/jenkins.service
#sudo sed -i.bak -e "/ExecStart=/s/eval/eval nice/" /usr/lib/systemd/system/jenkins.service
sudo chown -R $USER /var/lib/jenkins /var/cache/jenkins
sudo systemctl daemon-reload
sudo systemctl restart jenkins

Discussion

ログインするとコメントできます