我这有一个MInecraft的开服面板,拿systemd实现开机启动。但是跑面板的用户是没有sudo权限的普通用户。我现在每次更新个面板还要在不同账号间切来切去。
有什么方法可以让普通用户有权去systemctl start和stop一个systemd服务?
如何建立一个普通用户就可以执行的systemd服务?
-
- 帖子: 32
- 注册时间: 2014-02-15 17:04
- 系统: WinUbuntuArchRocky
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 如何建立一个普通用户就可以执行的systemd服务?
0、将xxx.service中[Install]下面的WantedBy设置为default.target或者systemctl --user list-units --type=target列出来的某个target
1、将xxx.service文件放到/etc/systemd/user/或/lib/systemd/user或~/.config/systemd/user里。
2、执行 systemctl --user enable xxx.service 以用户服务的形式启用
3、执行 loginctl enable-linger $USER,保证用户不登录时也会运行服务
以后用systemctl --user start/stop xxx.service
1、将xxx.service文件放到/etc/systemd/user/或/lib/systemd/user或~/.config/systemd/user里。
2、执行 systemctl --user enable xxx.service 以用户服务的形式启用
3、执行 loginctl enable-linger $USER,保证用户不登录时也会运行服务
以后用systemctl --user start/stop xxx.service
-
- 帖子: 32
- 注册时间: 2014-02-15 17:04
- 系统: WinUbuntuArchRocky
Re: 如何建立一个普通用户就可以执行的systemd服务?
部分操作,我之前试过,也是报错“Failed to connect to bus: 没有那个文件或目录”。astolia 写了: ↑2022-02-10 10:22 0、将xxx.service中[Install]下面的WantedBy设置为default.target或者systemctl --user list-units --type=target列出来的某个target
1、将xxx.service文件放到/etc/systemd/user/或/lib/systemd/user或~/.config/systemd/user里。
2、执行 systemctl --user enable xxx.service 以用户服务的形式启用
3、执行 loginctl enable-linger $USER,保证用户不登录时也会运行服务
以后用systemctl --user start/stop xxx.service
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 如何建立一个普通用户就可以执行的systemd服务?
你这是用ssh登录的吧,systemd会依赖一些环境变量,你当前的环境中没有就会报这个错。
在/etc/ssh/sshd_config中启用UsePAM试试
在/etc/ssh/sshd_config中启用UsePAM试试