在勾心斗角的环境中编程之普通用户添加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,将在开机后自动启动。

6908832-f1a26ef2f01a3304.png
bar用户创建的service文件
6908832-536d796739fc2c34.png
bar用户创建的service被bar target加载启动
systemd是Linux系统现代化的初始化系统,可以使用它来实现开机自动运行命令。在systemd,可以通过创建一个service文件,把要执行的命令放在其,然后将其添加systemd的自启动项。这样,在Linux电脑开机启动时,systemd会自动运行这些命令。\[1\]另外,systemd也可以作为启动时的第一个进程(作为PID 1)运行,充当启动和维护用户空间服务的初始化系统。它还可以为登录用户启动单独的实例以启动他们的服务。\[2\]所以,通过配置systemd的自启动项,可以实现在Linux电脑开机时自动启动所需的服务和应用程序。 #### 引用[.reference_title] - *1* [【Linux】使用systemd设置开机启动命令](https://blog.csdn.net/qq_41084756/article/details/130200523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [systemd系列——开机启动篇](https://blog.csdn.net/qq_43287763/article/details/128199285)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [走进Linux之systemd启动过程](https://blog.csdn.net/aa021064/article/details/102044306)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值