目录
1.在/root目录下创建systemd_test.sh脚本
1.进入/etc/systemd/system目录下 创建单元文件
一、自定义shell脚本
1.在/root目录下创建systemd_test.sh脚本
vim systemd_test.sh
#!/bin/bash
while true
do
echo $(date) >> /root/systemd_test.txt
sleep 2
done
- 使用
date
命令获取当前的日期和时间。- 将当前的日期和时间追加到
/root/systemd_test.txt
文件中。- 然后暂停执行 2 秒钟(使用
sleep 2
)。
2.创建systemd_test.txt文件
touch systemd_test.txt
3.给脚本运行权限
chmod +x systemd_test.sh
二、编写单元文件
1.进入/etc/systemd/system目录下 创建单元文件
cd /etc/systemd/system
vim systemd_test.service
[Unit]
Description=date deamon
After=network.target
[Service]
ExecStart=/root/systemd_test.sh
Restart=always
Type=simple
[Install]
WantedBy=multi-user.target
[Unit]
:定义了系统单元的基本信息。
Description=date deamon
:描述了这个服务的简短描述,表明这个服务是用于日期相关的操作。After=network.target
:指定了服务应该在网络目标(network.target)之后启动。这意味着这个服务将在网络服务启动后才会被启动。
[Service]
:定义了服务的具体运行方式。
ExecStart=/root/systemd_test.sh
:指定了服务启动时需要执行的命令或脚本,这里是执行/root/systemd_test.sh
脚本。Restart=always
:指定了服务在异常退出时应该自动重启。Type=simple
:指定了服务的启动类型,这里是简单的启动类型。简单的启动类型意味着 Systemd 不会对服务的主进程进行额外的跟踪和管理。
[Install]
:定义了如何安装这个服务。
WantedBy=multi-user.target
:指定了这个服务应该在何时安装。在这里,它表明这个服务会被安装在多用户环境(multi-user.target)中。
2.关闭系统保护,重新加载自定义配置systemd文件
setenforce 0
systemctl daemon-reload
setenforce
是一个命令,用于配置 SELinux 的执行模式。
0
表示将 SELinux 设置为“Permissive”模式,这意味着 SELinux (SELinux,全称 Security-Enhanced Linux,是一个Linux内核安全模块,为Linux系统提供了强制访问控制(MAC)的机制。它最初由美国国家安全局(NSA)开发,旨在提高Linux系统的安全性。SELinux通过强制执行安全策略来限制用户和应用程序的访问权限,从而有效地减少了系统受攻击的风险。)会记录但不阻止违规行为,并生成日志,而不会强制执行策略。这个模式通常用于调试和排查问题。- 当 SELinux 处于“Permissive”模式时,虽然它会记录违规行为,但不会阻止操作。相比之下,当 SELinux 处于“Enforcing”模式时,它会强制执行策略并拒绝不符合规则的操作。
- 相关知识点:SELinux 是一个 Linux 内核模块,用于提供强制访问控制(MAC)机制,通过强制执行策略来保护系统的安全性。SELinux 提供了三种执行模式:Enforcing(强制执行)、Permissive(宽容模式)和Disabled(禁用)。在生产环境中,通常应该将 SELinux 设置为“Enforcing”模式以提供更高的安全性。
- systemctl daemon-reload
systemctl
是一个 Systemd 管理工具,用于控制系统服务。daemon-reload
子命令用于重新加载 Systemd 配置文件,并在需要时重新启动受影响的服务。当你修改了 Systemd 单元文件(例如服务配置文件)时,需要运行daemon-reload
以确保 Systemd 重新加载并识别这些修改。- 相关知识点:Systemd 是 Linux 系统的初始化系统和服务管理器,它负责启动、管理和监控系统进程和服务。Systemd 使用单元文件来描述和配置系统服务,当单元文件被修改时,需要运行
daemon-reload
命令来使这些修改生效。
3.启动单元文件
systemctl enable /etc/systemd/system/systemd_test.service
systemctl start systemd_test.service
systemctl status systemd_test.service
如下运行成功
4.查看/root/systemd_test.txt文件
cat /root/systemd_test.txt
发现脚本运行成功。