速记——将可执行文件注册为服务
前言
这篇笔记记录了如何将可执行文件注册为系统服务,以便使用systemctl
执行和管理。假设文件的路径为/usr/local/test
。
操作
要在Linux系统中将一个二进制可执行文件注册为服务,通常可以使用 systemd
系统和服务管理器。systemd
是现代Linux发行版中广泛使用的初始化系统和服务管理工具。
1. 创建 systemd
服务单元文件
首先,你需要创建一个 systemd
服务单元文件,该文件描述了如何启动、停止和服务的行为。
创建服务单元文件
创建服务单元文件:
- 在
/etc/systemd/system
目录下创建一个新的服务单元文件,例如test.service
。
1
sudo nano /etc/systemd/system/test.service
- 在
编辑服务单元文件:
- 在文件中添加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13[Unit]
Description=Test Service
After=network.target
[Service]
ExecStart=/usr/local/test/test
WorkingDirectory=/usr/local/test
User=<username>
Group=<groupname>
Restart=on-failure
[Install]
WantedBy=multi-user.target解释配置项:
[Unit]
部分描述了服务的依赖关系和描述信息。[Service]
部分描述了服务的实际启动命令和其他运行参数。ExecStart
指定了服务启动时执行的命令路径。WorkingDirectory
指定了服务的工作目录。User
和Group
指定了服务运行时的用户和组。Restart
指定了服务在异常退出后的重启策略。
[Install]
部分描述了服务的启动级别和依赖关系。
替换
<username>
和<groupname>
:- 将
<username>
替换为你希望服务运行的用户名。 - 将
<groupname>
替换为你希望服务运行的组名。
- 将
2. 重新加载 systemd
配置
创建完服务单元文件后,需要重新加载 systemd
配置以使其生效。
1 | sudo systemctl daemon-reload |
3. 启动、启用和管理服务
启动服务:
- 使用
systemctl start
命令启动服务:
1
sudo systemctl start test.service
- 使用
启用服务:
- 使用
systemctl enable
命令使服务在系统启动时自动启动:
1
sudo systemctl enable test.service
- 使用
检查服务状态:
- 使用
systemctl status
命令检查服务的状态:
1
sudo systemctl status test.service
- 使用
停止服务:
- 使用
systemctl stop
命令停止服务:
1
sudo systemctl stop test.service
- 使用
禁用服务:
- 使用
systemctl disable
命令禁用服务,使其不再在系统启动时自动启动:
1
sudo systemctl disable test.service
- 使用
4. 验证服务
查看服务日志:
- 使用
journalctl
命令查看服务的日志:
1
sudo journalctl -u test.service
这将显示服务的日志,可以帮助你诊断问题。
- 使用
示例
假设你有一个名为 test
的二进制可执行文件位于 /usr/local/test
目录下,你可以按照以下步骤进行:
创建服务单元文件:
1
sudo nano /etc/systemd/system/test.service
编辑服务单元文件:
1
2
3
4
5
6
7
8
9
10
11
12
13[Unit]
Description=Test Service
After=network.target
[Service]
ExecStart=/usr/local/test/test
WorkingDirectory=/usr/local/test
User=yourusername
Group=yourgroupname
Restart=on-failure
[Install]
WantedBy=multi-user.target- 将
yourusername
替换为你希望服务运行的用户名。 - 将
yourgroupname
替换为你希望服务运行的组名。
- 将
重新加载
systemd
配置:1
sudo systemctl daemon-reload
启动服务:
1
sudo systemctl start test.service
启用服务:
1
sudo systemctl enable test.service
检查服务状态:
1
sudo systemctl status test.service
通过上述步骤,你可以将一个二进制可执行文件注册为Linux系统的服务,并管理其启动、停止和其他行为。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 葱酱的幻想乡 - Snowmiku's Dreamland!
评论