systemd 和 chkconfig 都是用于管理 Linux 系统服务的工具。它们的主要区别如下:
- systemd 是一种更加现代化的服务管理器,而 chkconfig 是旧式的服务管理器之一。
- systemd 使用单一的
.service
文件来描述服务,并提供了更多的启动控制和监控功能。chkconfig 则使用多个.rc
文件来描述服务,并且不支持系统服务的运行状态监控。 - systemd 是针对最新版本的 Linux 发行版进行设计的,如 CentOS 7、Ubuntu 15.04、Fedora 15 及更高版本。chkconfig 则是针对较旧版本的 Linux 发行版设计的,如 CentOS 6、Ubuntu 14.04、Fedora 14 及更早版本。
综上所述,如果您的 Linux 系统使用了 systemd,建议使用 systemd 来管理服务。如果您的系统使用了较旧的 Linux 发行版,或者您需要兼容某些遗留系统,可以使用 chkconfig。但是需要注意的是,最好不要在同一台服务器上同时使用 systemd 和 chkconfig 管理服务。
要通过创建一个 systemd service 文件来配置开机自启动,可以按照以下步骤操作:
创建一个 systemd service 文件,文件名一般以 .service 结尾,比如 myservice.service。在该文件中指定需要启动的脚本或命令。以下是一个示例:
[Unit]
Description=My Service
[Service]
ExecStart=/path/to/my_script.sh
[Install]
WantedBy=multi-user.target
注释
[Unit]
Description=Time.sh # 服务描述,用于描述此服务的作用
[Service]
ExecStart=/root/time.sh # 服务启动命令,指定需要执行的脚本或命令
[Install]
WantedBy=multi-user.target # 服务安装级别,指定服务在哪个运行级别下启动
将该文件保存到 /etc/systemd/system/ 目录下。注意,文件名必须以 .service 结尾,并且文件权限应该设置为 644。
执行以下命令,使 systemd 加载新的服务文件:
sudo systemctl daemon-reload
执行以下命令,使新的服务在系统启动时自动启动 和禁止自启动:
sudo systemctl enable myservice.service
sudo systemctl disable myservice.service
如果需要手动启动该服务,可以使用以下命令:
sudo systemctl start myservice.service
如果需要停止该服务,可以使用以下命令:
sudo systemctl stop myservice.service
要列出所有的 systemd 服务,可以执行以下命令:
systemctl list-unit-files --type=service
在以上步骤中,/path/to/my_script.sh 应该替换为实际的脚本文件路径。另外,Description 和 WantedBy 配置项可以根据需要进行修改,用于描述服务的作用和指定服务在哪个运行级别下启动。
示例:
自启动运行脚本
[Unit]
Description=bbrpuls
[Service]
ExecStart=/bin/bash -c 'echo "6" | /root/tcp.sh'
[Install]
WantedBy=multi-user.target
自启动运行多个脚本
这将会延迟 15 秒后依次运行 `/path/to/script1.sh` 和 `/path/to/script2.sh`。
ExecStart=/bin/bash -c 'sleep 15 && /path/to/script1.sh && /path/to/script2.sh'
如果需要传递参数给脚本,可以在命令中添加参数,例如
ExecStart=/bin/bash -c 'sleep 15 && /path/to/script1.sh arg1 arg2 && /path/to/script2.sh arg3'
仅运行一次
[Unit]
Description=bbrpuls
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'sleep 15 && echo "6" | /root/tcp.sh'
ExecStop=/bin/bash -c 'systemctl disable bbrpuls.service'
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
要删除 Systemd 系统服务
要删除 Systemd 系统服务,可以按照以下步骤进行操作:
1、打开终端并以管理员权限登录到系统。
2、用 systemctl 命令停止服务,例如:sudo systemctl stop servicename.service
3、 使用 systemctl 命令禁用服务,例如:sudo systemctl disable servicename.service
4、如果需要删除服务文件,可以使用 rm 命令删除服务文件,例如:sudo rm /etc/systemd/system/servicename.service
5、使用 systemctl 命令重新加载 Systemd 配置,例如:sudo systemctl daemon-reload
注意:在删除服务之前,请确保您真的不需要该服务,并且您知道其所执行的操作。删除服务可能会影响系统的正常运行,因此请谨慎操作。