之前写过 Ubuntu 上通过 Systemd 配置 Spring Boot jar 包自启动,不过这种模式只能在 root 下重启应用,但我们一般会把应用安装在非 root 用户下面,这时候在用脚本或者其它持续集成工具发布应用之后就需要非 root 下执行重启操作了。
在 Ubuntu 下面可以在 /etc/sudoers.d
下面添加个 user_restart
文件,里面写入:
myuser ALL=NOPASSWD: /bin/systemctl start app.service
myuser ALL=NOPASSWD: /bin/systemctl stop app.service
myuser ALL=NOPASSWD: /bin/systemctl restart app.service
需要执行哪些命令就另起一行加上即可,其实就是对于 sudo
的配置而已。
之后在 myuser
用户下执行:
sudo systemctl restart app.service