使用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.www58058.com/100909

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

相關推薦

  • 構建WordPress

    所需要安裝包: centos7,httpd,php,php-mysql,mariadb-server centos6,httpd,php(http的php模塊包),php-mysql,mysql-server 包解釋: php-common:php解釋器安裝包; php:httpd的模塊安裝包; php-mysql:php模塊連接數據庫的功能擴展包; php…

    Linux筆記 2018-03-31
  • 配置主機與主機通訊可以經過路由器的操作。

    配置主機A與主機B相互通訊,中間經過兩個路由器還能正常通訊的基本操作。

    2018-05-06
  • 第三周作業20180528

    1、 列出登錄用戶 登錄用戶去重 2、 顯示最后登錄用戶信息 3、 查看使用最多的SHELL 4、 5 6 7、 8、 9、 10、    

    2018-05-28
  • 羅列Linux發行版的基礎目錄名稱命名法則及功用規定

    FHS: ? ? Filesystem Hierarchy Standard http://refspecs.linuxfoundation.org/ http://refspecs.linuxfoundation.org/fhs.shtml ? ? /bin:所有用戶可用的基本命令程序文件; ? ? /sbin:工系統管理使用的工具程序; ? ? /boo…

    Linux筆記 2018-05-13
  • 數組,字符串切片,高級變量

    數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合 數組名和索引 索引:編號從0開始,屬于數值索引 注意:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引 bash4.0版本之后開始支持 bash –version?? 查看bash版本 bash的數組支持稀疏格式(索引不連續) 聲明數組: de…

    Linux筆記 2018-05-13
  • Linux第六天筆記(markdown格式)

    文本處理三劍客 grep:grep,egrep,fgrep pattern:模式,類型 sed awk 通用技術:正則表達式 blank和space的區別: `[:blank:]’ Blank characters: space and tab. ? [:space:]’ ? ? ? Space characters: in theC’ locale, th…

    Linux筆記 2018-04-08
欧美性久久久久