如何在Linux上创建和管理用户服务

2024年 3月 20日 73.4k 0

Linux的普通用户可以创建自定义的系统服务。而SYSTEM D服务主要由系统管理员使用SYSTEMCTL命令进行管理。同样的命令也可以用于管理特定于用户的服务;您所需要的只是一个-user标志。

在本指南中,我将介绍如何在Linux上创建用户特定的服务,以及如何使用systemctl管理它。

拥有正常用户服务的原因

普通用户服务不同于系统服务。普通用户服务是以登录用户为中心的。此服务将仅在创建它的用户的会话中工作。

如何创建正常用户服务

Linux上用户特定的服务放在~/. config/systemd/user目录中。如果这个目录不存在,则可以创建它。

mkdir—p~/. config/systemd/user

如果需要,-p标志用于创建父目录。~表示本地用户的主目录,相当于/home/user,而配置文件前的圆点使其隐藏。让我们创建一个简单的bash脚本文件,该文件将每30分钟将内存使用情况写入文本。我正在创建名为script.sh的脚本。

#!/bin/bash

虽然这是真的

免费—m>>/home/user/myfile.txt

睡眠1800

完成

此脚本可以在任何地方创建,但请确保脚本中指定的路径是绝对路径。

现在,让我们创建一个将在后台执行上述脚本的服务。启动任何文本编辑器,如Nano或Vim,并在其中粘贴下面给出的行。

【单位】

描述=我的服务

[服务]

类型=简单

ExecStart =/bin/bash/home/user/www.example.com

重新启动=开启-故障

[安装]

WantedBy = default. target

在[Unit]部分,Description指令只包含服务的名称。请注意,它不应超过80个字符。

[服务]部分包含三个重要指令。首先,Type;这是简单的,然后ExecStart包含我们自定义脚本的可执行文件。只有当出现故障时,服务才会重新启动。

[Install]部分包含WantedBy指令,该指令为default.Target,表示服务在达到默认运行级别时将在系统状态下启用,默认运行级别通常为多用户.Target或Graphical.Target。

现在,将文件保存在~/. config/systemd/user目录中,使用任意名称;我将其命名为myservice.service。

如何管理正常的用户服务

要管理普通用户服务,可以使用带-USER标志的系统ctl命令。-USER标志表示用户正在联系服务管理器,而不是系统。

创建用户特定的服务文件后,第一个关键步骤是重新加载systemd配置文件。

systemctl——user daemon—reload

这将应用这些更改。

要知道服务是否正在运行,请使用systemctl,并带有—user标志和选项。

System ctl--用户状态[服务名称]

管理正常用户服务的其他命令如下所述:

System ctl--用户启动[服务名称]

systemctl——用户启用[service_name]

System ctl--用户停止[服务名称]

System ctl--用户禁用[服务名称]

System ctl--用户重新启动[服务名称]

如何创建具有系统管理员权限的普通用户服务

用户创建了许多服务,但它们需要管理员权限才能运行。这些服务可以通过在[Service]部分添加User指令来创建。

User指令可用于提及运行服务所需权限的用户的名称,例如admin。因此,如果一个普通用户想要创建一个需要管理员权限的服务,那么只需在[Service]部分添加User = admin即可完成这项工作。但是,只要管理员处于活动状态,此服务将保持活动状态。请注意,此服务不能由管理员直接控制。

结论

普通用户也可以创建systemd服务,但必须将其放置在~/. config/systemd/user目录中。只要创建该服务的用户登录,此服务就会运行。这些服务也通过systemctl命令管理,但使用—user标志。它告诉systemd服务正在被用户调用,而不是系统调用。在本指南中,我创建了一个自定义的普通用户服务,并提到了用于管理它的systemctl命令,此外,我还突出了创建需要管理权限的服务的方法。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论