Linux 自啓動方式一:自啓動服務servcie

背景

       渣渣筆記本電腦,作爲Linux服務器。將oracle 11g裝到了docker中(有關11g docker化安裝,將在其他文章講述),以便學習考取OCP證書。但是,開機後每次都需要su切換到root下起container,甚是繁瑣。因而思考Linux的開機啓動項。於是乎得到三種解決方案:

  1. 自啓動服務service
  2. Crontab---定時任務
  3. /etc/rc.local

本文講述第一種方案,自啓動服務。

環境

jwllinux@jwlLinux ~ $ uname -a

Linux jwlLinux 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:34:49 UTC 2016 i686 i686 i686 GNU/Linux

 

jwllinux@jwlLinux ~ $ hostnamectl

   Static hostname: jwlLinux

         Icon name: computer-laptop

           Chassis: laptop

        Machine ID: 30e8671244344b49af2510a06808f1b0

           Boot ID: 32a4ae15a47e4694908e5f18faaa2c56

  Operating System: Ubuntu 16.04 LTS

            Kernel: Linux 4.4.0-21-generic

      Architecture: x86

jwllinux@jwlLinux ~ $ lsb_release  -d

Description:    Linux Mint 18 Sarah

X86架構,Linux Mint 18

步驟

1. 在/etc/init.d 下建立相關程序的啓動腳本

vim /etc/init.d/testservcie

chmod 755 testservcie

jwllinux@jwlLinux ~ $ cat /etc/init.d/testservcie

#!/bin/sh

### BEGIN INIT INFO

# Provides:         testservice

# Required-Start:

# Required-Stop:

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: test for service

# Description:       test for service

### END INIT INFO

 

echo "1"

exit 0

說明:/etc/init.d/下腳本即爲debian系列Linux系統init啓動項。其腳本的編寫需要遵循一定的風格(LSB風格),具體可以查看/etc/init.d/README。如:

Provides===提供了什麼服務;

Required-Start===服務啓動的依賴項

Default-Start===默認啓動層級(0~6)。

  0級:關閉系統(千萬不要把initdefault設置爲0,否則將開不了機)

  1級:單用戶模式

  2級:沒有網絡多用戶模式

  3級:有網絡多用戶模式

  4級:系統保留

  5級:有網絡和圖形的多用戶模式 

  6級:重啓系統(千萬不要把initdefault設置爲6,否則電腦將一直開機重啓)

……

2. 註冊服務

systemctl enable testservcie

update-rc.d testservcie defaults

可能的報錯:(此服務已經被其他腳本提供)

此命令會解析腳本頭,在相應層級的啓動目錄下創建指向/etc/init.d/XXX的符號鏈接,如下:

3. 查詢註冊的服務

4. 查看服務狀態

 

5. service 服務名 start 手動啓動服務

6. service 服務名 stop 手動關閉服務

其他

       如上步驟主要是使用systemctl命令註冊了服務,並用service命令對服務進行操作。Service命令還有許多相關參數,如reloadrestart等,分別對應啓動腳本不同的處理邏輯。本文只是簡單介紹服務的註冊,有關啓動腳本的書寫,可參閱存量腳本。

補充

對於Redhat/ centos系列的Linux系統,服務的註冊可能是chkconfig命令,讀者可以需要根據自己OS的適配。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章