为了账号安全,请及时绑定邮箱和手机立即绑定

在勾心斗角的环境中编程之普通用户添加systemd的开机启动项

在软件开发过程中,良好的工作模式是对别人委之以重任而又不能给之以信任。既要给别人灵活方便的自由度让其自由发挥,又要将误操作带来的损失降低到最小而防患于未然。

在centos系统中,systemd没有user mode,只有system mode,因此只有root才能执行systemctl enable。如果一个普通用户想做某个服务的开机自启动,有两种选择:

  1. 找root用户添加。如果root日理万机,对这些请求就会不胜其烦。
  2. 让root用户给他sudo。这样有可能造成普通用户用sudo造成误操作,虎兕出于柙,龟玉毁于椟中,是谁之过与?

这里介绍一种通过添加target的方法,使得普通用户也能添加开机启动项。

比如需要让用户bar自行添加开机启动项,首先要为他添加一个target。

添加文件/etc/systemd/system/bar.target

[Unit]
Description=user bar target

[Install]
WantedBy=multi-user.target

并且enable这个target。

然后创建文件夹/etc/systemd/system/bar.target.wants,并且将文件夹的owner给bar。

这样bar用户在/etc/systemd/system/bar.target.wants文件夹中添加的service,将在开机后自动启动。

bar用户创建的service文件

bar用户创建的service被bar target加载启动

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消