在Linux操作系统中,开机服务是一种在系统启动时自动运行的程序或服务。这些服务可能是系统自带的,也可能是用户自己安装的。添加开机服务可以让用户更方便地运行和管理自己的程序或服务,本文将介绍如何添加开机服务。
为了添加开机服务,我们需要在系统上创建一个systemd service unit文件。systemd是linux系统中的一种服务管理器,用于管理和控制系统进程。一个systemd service unit文件描述了一个服务的配置和启动参数,通常保存在/etc/systemd/system目录下。以下是一个标准的systemd service unit文件的基本格式:
“`
[Unit]
Description=描述信息
After=依赖关系
[Service]
Type=服务类型
ExecStart=启动命令
ExecStop=停止命令
Restart=重启策略
[Install]
WantedBy=依赖关系
“`
其中,每个字段的含义如下:
Unit:描述了这个service unit 文件的元数据,包含了服务的描述信息和依赖关系。
Service:描述了服务的配置和启动过程。
Install:描述了服务的安装和卸载。
在创建一个service unit 文件之前,需要确认服务需要执行的命令和参数。例如,如果我们要创建一个名为myservice的服务,它需要运行一个名为myprogram的程序,可以使用以下命令创建myservice.service文件:
“`
sudo vi /etc/systemd/system/myservice.service
“`
然后输入以下内容:
“`
[Unit]
Description=My Service
[Service]
ExecStart=/usr/bin/myprogram arg1 arg2 arg3
[Install]
WantedBy=multi-user.target
“`
在这里,我们定义了一个名为My Service的服务,并将其运行的程序指定为 /usr/bin/myprogram,其参数为 arg1,arg2,arg3。同时,我们还指定了此服务在multi-user.target级别下启动。
当我们完成myservice.service文件的编辑以后,使用以下命令启动服务:
“`
sudo systemctl start myservice.service
“`
然后,我们可以使用下面的命令检查服务运行的状态:
“`
sudo systemctl status myservice.service
“`
如果服务已经运行,则输出如下所示:
“`
● myservice.service – My Service
Loaded: loaded (/etc/systemd/system/myservice.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-09-01 17:12:07 KST; 10min ago
Mn PID: 1234 (myprogram)
Tasks: 5 (limit: 4703)
Memory: 5.2M
CGroup: /system.slice/myservice.service
└─1234 /usr/bin/myprogram arg1 arg2 arg3
“`
如果服务未能正常运行,可以使用如下命令查看服务输出:
“`
journalctl -xn
“`
这个命令将显示在调试服务时必需的日志信息。
当我们使用start命令启动服务后,该服务只在当前会话中运行。要设置开机启动,可以使用以下命令:
“`
sudo systemctl enable myservice.service
“`
这个命令会创建一个软链接到 /etc/systemd/system/multi-user.target.wants目录下,启用开机自启动。如果你需要禁用开机自启动,可以使用以下命令:
“`
sudo systemctl disable myservice.service
“`
在Linux操作系统中,添加开机服务非常容易。只需要创建一个systemd service unit文件,定义服务的配置和启动参数,启动服务即可。当然,为了更好地管理服务,我们可以使用systemctl命令进行更多的操作,如检查服务状态、设置开机自启动等等。希望本文能够对初学者有所帮助。
相关问题拓展阅读:
- linux设置开机自启动
linux设置开机自启动
linux设置开机自启动执行命令
:
执行命令
: 编辑”/etc/rc.local”,添加你想开机运行的命令
运行程序脚本
:然后在文件最后一行添加要执行程序的全路径。
例如,每次开机时要执行一个hello
.sh
,这个脚本放在/usr下面,那就可以在”/etc/rc.local”中加一行”/usr/./hello.sh”,或者” cd /opt &桥伏& ./hello.sh “
注意,你的命令应该添加在:exit 0 之前
linux在“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本或者可执行二进制文件 Linux开机的时候,会森消神加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。系统服务的启动就是通过这种方式实现的。
简单的说,运行级就是操作系统当前正在运行的功能级别。
例:在Ubuntu/debain里,可以使用update-rc.d命令来把示例脚本:/etc/init.d/proxy安装到各个runlevel中。
update-rc.d后面有三个参数,分别是/etc/init.d下的脚本名字,默认安装方式,运行的
优先级
。优先级的数字越大,表示越迟运行,这里我们把自己写的服务放在最后运行。
如果要卸载随机启动的服务,执行
在update-rc.d安装的时候提示了警告信息,是因为我们写的/etc/init.d/proxy太简陋了,只包含了我们想要的此亏命令,连LSB的信息也没有提供。
只需要对自启动脚本做一些小改动,就可以避免那个警告了。如下:
到此,一个最简单的随机启动服务写好了,看起来文章挺长的,但其实也就几个命令而已。 在下次开机启动的时候,proxy.py就会以root用户身份被自动运行。
在/etc/init.d下新建示例脚本文件(startTest.sh),该脚本会启动/opt/test.sh。内容如下:
写了脚本文件之后事情还没有完,继续完成以下几个步骤:
关于添加开机服务linux的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。