使用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

相关推荐

  • bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

    bash的基础特性: 1.命令补全: shell程序在接收到用户执行命令的请求时,分析完成之后,最左侧的字符串会被当作命令; 命令查找机制: 根据PATH环境变量中设定的目录,自左向右逐个搜多目录下的文件名 给定的打头字符串,如果能唯一标识某命令程序文件,则直接补全,                      如果不能唯一标识某命令程序文件,再tab一次会给…

    Linux笔记 2018-05-20
  • shell 脚本编程基础

    六、shell脚本编程 6.1bash脚本编程之变量 ​ 作业提交地址:scp N wang@172.20.102.77:home/wang/bin ​ 执行脚本的方法: 以bash程序来执行: bash hello.sh或cat hello.sh |bash 直接指令下达: 加权限:chmod +x hello.sh 绝对路径:/home/hello.sh…

    2018-05-01
  • 如何在虚拟机上安装centos6系统

    VMware Workstation  是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,以及可便于携带的虚拟机器,  下图以VMware14.1.1版本为例: 第一步打开VMware并选择创建新的虚拟机。 第二步此处我们选择典型配置,并开始下一步 第三步选择稍后安装操作系统并开始下一步 第四步:选择liux操作系统,版本号…

    2018-03-29
  • 计算机的组成及功能

    1. 计算机是由硬件系统及软件系统组成 1.1 硬件系统:CPU、存储器、输入及输出设备; CPU:包括运算器及控制器;运算器完成算数及逻辑运算,而控制器则实现取指令和分析指令。 存储器:包括内存、外存;内存主要负责存储缓存数据,外村主要负责存储本地数据。 输入设备:键盘、鼠标等标准输入设备。 输出设备:显示器、打印机等。 1.2 软件系统:系统软件及应用软…

    Linux笔记 2018-05-12
  • 1

    1

    Linux笔记 2018-07-07
  • 今天开始,重新学习

    混了这么多年,才发现还是要学习,要有本事才能混的好些。今天开始,重新学习,为了有好的将未来。为了能够多挣点钱。。。。。。

    Linux笔记 2018-06-20