系统自定义服务

目录

一、自定义shell脚本

1.在/root目录下创建systemd_test.sh脚本

2.创建systemd_test.txt文件

3.给脚本运行权限

二、编写单元文件

1.进入/etc/systemd/system目录下 创建单元文件

2.关闭系统保护,重新加载自定义配置systemd文件

3.启动单元文件

 4.查看/root/systemd_test.txt文件


一、自定义shell脚本

1.在/root目录下创建systemd_test.sh脚本

vim systemd_test.sh

#!/bin/bash
while true
do
        echo $(date) >> /root/systemd_test.txt
        sleep 2
done
  1. 使用 date 命令获取当前的日期和时间。
  2. 将当前的日期和时间追加到 /root/systemd_test.txt 文件中。
  3. 然后暂停执行 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

  1. [Unit]:定义了系统单元的基本信息。

    • Description=date deamon:描述了这个服务的简短描述,表明这个服务是用于日期相关的操作。
    • After=network.target:指定了服务应该在网络目标(network.target)之后启动。这意味着这个服务将在网络服务启动后才会被启动。
  2. [Service]:定义了服务的具体运行方式。

    • ExecStart=/root/systemd_test.sh:指定了服务启动时需要执行的命令或脚本,这里是执行 /root/systemd_test.sh 脚本。
    • Restart=always:指定了服务在异常退出时应该自动重启。
    • Type=simple:指定了服务的启动类型,这里是简单的启动类型。简单的启动类型意味着 Systemd 不会对服务的主进程进行额外的跟踪和管理。
  3. [Install]:定义了如何安装这个服务。

    • WantedBy=multi-user.target:指定了这个服务应该在何时安装。在这里,它表明这个服务会被安装在多用户环境(multi-user.target)中。

2.关闭系统保护,重新加载自定义配置systemd文件

setenforce 0 

systemctl daemon-reload

  1.           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”模式以提供更高的安全性。
  2.         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



发现脚本运行成功。

  • 38
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值