Linux注册为系统服务

0x01 创建一个新的systemd服务配置文件

例如myscript.service

sudo nano /etc/systemd/system/myscript.service

0x02在文件中添加以下内容

[Unit]
Description=My Script Service
After=network.target

[Service]
ExecStart=/path/to/myscript.sh
Restart=always

[Install]
WantedBy=multi-user.target

0x03保存并关闭文件后,重新加载systemd配置

sudo systemctl daemon-reload

0x04启动新的服务并将其设置为开机启动

sudo systemctl enable myscript.service
sudo systemctl start myscript.service

现在,当您的系统启动时,systemd服务管理器将自动启动myscript.service服务,并在网络服务启动之后运行/path/to/myscript.sh脚本。

请注意,systemd服务管理器是现代Linux系统中常见的服务管理器,但并不是所有的Linux系统都使用systemd。如果您使用的是不同的服务管理器,请查阅相关文档以了解如何在您的系统上创建开机启动脚本。

0X05问答

0x051 After为系统所有服务启动后再启动该怎么填

如果您希望在所有系统服务启动后再启动您的systemd服务,可以将After选项设置为systemd-udevd.service,该服务在所有其他系统服务之后启动。例如,将myscript.serviceAfter选项设置为:

After=systemd-udevd.service

0x052 WantedBy的值有哪些?分别是什么意思

WantedBysystemd服务配置文件中的一个选项,用于指定哪个系统级别(即运行级别)或目标需要启用该服务。

systemd中,运行级别和目标都是用一个特殊的单元(unit)文件来表示的。这些单元文件包含了用于管理系统各个方面的服务和进程的配置信息。WantedBy选项告诉systemd在哪些运行级别或目标中启用服务。下面是WantedBy的常见值及其含义:

  • multi-user.target:启用服务在多用户模式下(即默认的命令行终端模式)运行。这是大多数服务的默认设置。
  • graphical.target:启用服务在图形模式下(即桌面环境)运行。
  • rescue.target:启用服务在救援模式下(即恢复模式)运行,该模式提供了诊断和修复系统的选项。
  • default.target:启用服务在系统的默认目标(即/etc/systemd/system/default.target所指定的目标)中运行。
  • sysinit.target:启用服务在系统初始化期间运行,即在所有其他系统服务之前运行。
  • shutdown.target:启用服务在系统关闭时运行。

这些选项可以组合在一起,以在多个目标中启用服务。例如,WantedBy=multi-user.target graphical.target将启用服务在多用户模式和图形模式下运行。

posted @ 2023-05-12 21:44  小枫同学  阅读(500)  评论(0编辑  收藏  举报