使用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
下一篇 2018-06-12

相關推薦

  • Linux基礎介紹、系統組成和獲取命令幫助及系統目錄說明

    一、描述計算機的組成及其功能 計算機由運算器、控制器、存儲器、輸入設備、輸出設備組成1.運算器-主要是對數據進行各種運算(加、減、乘、除)2.控制器-計算機系統的控制中心,分配和協調整個計算機系統工作3.存儲器-存儲各種數據信息,以二進制形式存儲,分為內存和外存4.輸入設備-將數據、程序等信息輸入到計算機中,例如鍵盤5.輸出設備-將計算機的運算結果顯示出來,…

    2018-06-23
  • 權限

    chmod 更改權限 語法 1 who 對誰操作 opt做什么操作 per 跟什么權限 跟文件 who u g o a opt +增加 -減掉 =覆蓋 per rwx reset 重復系統 文本文件 r 讀 打開 w 改 x 執行程序 chown 更改所有者 chgrp 更改所屬組 chmod who (u) opt (g)per(o) file文件 綠色有…

    Linux筆記 2018-04-08
  • Linux用戶管理

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d ‘ ‘ -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。 who | tail -1 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 cut -d: -f7 /etc/pa…

    Linux筆記 2018-07-22
  • 我的第一篇博客!

    大家好,我在178linux開博文了,歡迎大家斧正!

    Linux筆記 2018-05-02
  • 條件判斷與循環筆記

    編程語句總結

    2018-05-10
欧美性久久久久