使用Systemd把自作脚本服务化(加入开机启动)

Systemd的出现,使得自己编写的脚本可更容易的添加进系统服务,进而实现开机启动。

例如,我们可以把最简单的hello world脚本进行扩展,将其添加进系统服务,使之开机自启动。

1、编写脚本

编写一个 /opt/hello.sh 脚本

sudo vim /opt/hello.sh
/opt/hello.sh
#!/bin/bash
while true
do
   echo hello world >> /tmp/hello.log
   sleep 1
done

赋予执行权限。

sudo chmod 0755 /opt/hello.sh

2、在/etc/systemd/system/ 下创建Unit定义文件

sudo vim /etc/systemd/system/hello.service

内容如下

/etc/systemd/system/hello.service
[Unit]
Description = hello daemon

[Service]
ExecStart = /opt/hello.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target

ExecStart中填写想要执行的脚本。
Restart = always 是指进程或服务意外故障的时候可以自动重启的模式。

※Unit文件的详细写法会另外给出。

(Type = simple 指默认的选项没有必要填写,或可理解成其余选项均为系统默认。)

3、把Unit添加进Service

使用systemctl list-unit-files --type=service命令,出现如下图所示即为正常。

$ sudo systemctl list-unit-files --type=service | grep hello
hello.service                              disabled

OK!

4、enable服务后使之start

之后系统将以一般服务的形式对待它。

# 开机自启动on
$ sudo systemctl enable hello
# 单次启动
$ sudo systemctl start hello

运行状态确认

$ sudo systemctl status hello

hello.service - hello daemon
   Loaded: loaded (/etc/systemd/system/hello.service; enabled)
   Active: active (running) since 2018-05-19 09:02:19 UTC; 2min 54s ago
 Main PID: 551 (hello.sh)
   CGroup: /system.slice/hello.service
           ├─ 551 /bin/bash /opt/hello.sh
           └─2062 sleep 1

 6月 19 09:02:19 localhost.localdomain systemd[1]: Started hello daemon.

打开日志文件看看脚本是否正常运作。

[vagrant@localhost ~]$ tailf /tmp/hello.log
hello world
hello world
hello world
hello world
hello world

成功了!

5、重启机器,查看服务是否正常自动启动

$ sudo reboot

重启后,如正常显示hello服务即为操作政工。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/100909

赞 (27)
无名无名
上一篇 2018-06-12 15:40
下一篇 2018-06-12 15:45

相关推荐

  • 作业管理(任务计划)

    任务计划就好比我们的闹钟一样,到了指定的时间就该去做对应的事情。 任务计划分为两类: 一次性的任务计划:只执行一次就结束 周期性的任务计划:每隔一定的周期去做相同的事情 at命令就是专门用来处理一次性的计划任务 batch也是处理一次性的计划任务但是它是由系统自行选择空闲时间去执行此处指定的任务(不常用) crontab可以根据定义的周期信息,循环的去做一些…

    Linux笔记 2018-05-05
  • yum源搭建

    本地yum源搭建,网络yum源搭建

    Linux笔记 2018-04-21
  • 马哥教育– 第一周作业

    一、描述计算机的组成及其功能。 计算机由运算器,控制器,存储器,输入设备和输出设备五大部分组成。 运算器的功能是用于完成算术运算、逻辑运算。负责计算机执行的所有数学与逻辑功能。 控制器的功能是主要负责对程序所执行的指令进行分析,并协调计算机各部件进行工作计算机的所有其他部件。 存储器的功能是用于储存信息的设备,通常是将信息数字化后再利用电、磁、光学等方式的媒…

    2018-05-12
  • httpd的安装并分别实现三种工作模式、request报文请求的简述、httpd的虚拟机、站点访问控制、用户访问控制、持久连接配置

    系统版本 Centos 7 安装httpd 2.4 1、编译安装: 2、yum仓库安装 ~]# yum -y insatll httpd 程序环境配置文件; httpd主配置文件。 /etc/httpd/conf/httpd.conf 自建配置文件。 在不修改主配置文件的情况下新增一个配置文件。 /etc/httpd/conf.d/*.conf System…

    2018-06-19
  • 文本处理工具sed

    sed:是行编辑器是一款流编辑器,是一门语言,;比grep强大,不光能看还能改,你值得拥有。地址定界:对第几行进行操作不给地址:对全文处理单地址#指定的行,$最后一行/字符,正则/:被此处模式匹配到的每一行地址范围:#,#:第几行到第几行#,+#:从第#行往后加#行(包括#,)/a字符串/,/b字符串/:从a匹配到b(如果找不到b就会从a打印到最后一行)#,…

    2018-04-19