1. 程式人生 > >linux中service與chkconfig的替代者systemctl的簡單介紹

linux中service與chkconfig的替代者systemctl的簡單介紹

linux中有很多命令已經存在了N多年,漸漸一些已被一些新命令所代替,不過由於習慣的原因,很多時候我們並不能一下子適應過來 ,例如ifconfig之於ip命令。

最近在升級到centos7時也發現不支援service命令了,systemctl是systemd下的一個工具。網上查了下,該命令已經存在很久了。該命令是用來替代service和chkconfig兩個命令的 —— 儘管個人感覺還是後者好用。
為了順應時間的發展,這裡總結下。在目前很多linux的新發行版本里,系統對於daemon的啟動管理方法不再採用SystemV形式,而是使用了sytemd的架構來管理daemon的啟動。

一、runlevel 到 target的改變

在systemd的管理體系裡面,以前的執行級別(runlevel)的概念被新的執行目標(target)所取代。tartget的命名類似於multi-user.target等這種形式,比如原來的執行級別3(runlevel3)就對應新的多使用者目標(multi-user.target),run level 5就相當於graphical.target。
由於不再使用runlevle概念,所以/etc/inittab也不再被系統使用 — 無怪乎在新版本ubuntu上找不到inittab檔案了。
而在systemd的管理體系裡面,預設的target(相當於以前的預設執行級別)是通過軟鏈來實現。如:

ln -s /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target

在/lib/systemd/system/ 下面定義runlevelX.target檔案目的主要是為了能夠相容以前的執行級別level的管理方法。 事實上/lib/systemd/system/runlevel3.target,同樣是被軟連線到multi-user.target。
注:opensuse下是在/usr/lib/systemd/system/目錄下。

二、單元控制(unit)

在systemd管理體系裡,稱呼需要管理的daemon為單元(unit)。對於單元(unit)的管理是通過命令systemctl來進行控制的。例如顯示當前的處於執行狀態的unit(即daemon),如:

#systemctl
#systemctl --all
#systemctl list-units --type=sokect
#systemctl list-units --type=service

注:type後面可以接的型別可以通過help檢視

[[email protected] ~]# systemctl -t help
Available unit types:
service
socket
target
device
mount
automount
snapshot
timer
swap
path
slice
scope

三、systemctl用法及示例

chkconfig、service命令與systemctl命令的區別見下表:
注:httpd.service可以簡寫成httpd 例如:
systemctl status httpd

任務 舊指令 新指令
使某服務自動啟動 chkconfig –level 3 httpd on systemctl enable httpd.service
使某服務不自動啟動 chkconfig –level 3 httpd off systemctl disable httpd.service
檢查服務狀態 service httpd status systemctl status httpd.service (服務詳細資訊)
systemctl is-active httpd.service (僅顯示是否 Active)
加入自定義服務 chkconfig –add test systemctl load test.service
刪除服務 chkconfig –del xxx 停掉應用,刪除相應的配置檔案
顯示所有已啟動的服務 chkconfig –list systemctl list-units –type=service
啟動某服務 service httpd start systemctl start httpd.service
停止某服務 service httpd stop systemctl stop httpd.service
重啟某服務 service httpd restart systemctl restart httpd.service

注:systemctl後的服務名可以到/usr/lib/systemd/system目錄檢視(opensuse下),其他發行版是位於/lib/systemd/system/ 下。

//opensuse下

[[email protected] ~]# systemctl status network.service
network.service - LSB: Configure network interfaces and set up routing
   Loaded: loaded (/usr/lib/systemd/system/network.service; enabled)
   Active: active (exited) since Mon 2014-09-01 20:05:45 CST; 2h 14min ago
  Process: 1022 ExecStart=/etc/init.d/network start (code=exited, status=0/SUCCESS)
Sep 01 20:05:15 linux-pnp8 systemd[1]: Starting LSB: Configure network interfaces and set up routing...
Sep 01 20:05:15 linux-pnp8 network[1022]: Setting up network interfaces:
Sep 01 20:05:15 linux-pnp8 network[1022]: lo
Sep 01 20:05:15 linux-pnp8 network[1022]: lo        IP address: 127.0.0.1/8
Sep 01 20:05:45 linux-pnp8 network[1022]: ..done..done..doneSetting up service network  .  .  .  .  .  .  .  .  .  .  .  .  ...done
Sep 01 20:05:45 linux-pnp8 systemd[1]: Started LSB: Configure network interfaces and set up routing.

//centos下

# systemctl status httpd.service
httpd.service - The Apache HTTP Server (prefork MPM)
        Loaded: loaded (/lib/systemd/system/httpd.service; disabled)
        Active: inactive (dead)  <-- 表示未啟動
        CGroup: name=systemd:/system/httpd.service

上面兩個命令相當於/etc/init.d/network status 和 /etc/init.d/httpd status,opensuse和centos下的用法相同,只不過顯示的路徑不同。其他操作類似。

四、service配置檔案

還以上面提到的httpd.service配置為例,httpd.service檔案裡可以找到如下行:

[Install]
WantedBy=multi-user.target

則表明在多使用者目標(multi-user.target,相當於level3)時自動啟動。如果想在runlevel 5下也自啟動,則可以將配置改為如下:

[Install]
WantedBy=multi-user.target graphical.target

一旦設定了自動啟動(enbale),就在/etc/systemd/system/.wants/下面建了一個httpd.service的軟連線,連線到/lib/systemd/system/下的相應服務那裡 。所以顯示自動啟動狀態的unit (類似於chekconfig –list命令的結果),可以通過下面的方法檢視:

#ls /etc/systemd/system/multi-user.target.wants/

相關推薦

linuxservicechkconfig替代systemctl簡單介紹

linux中有很多命令已經存在了N多年,漸漸一些已被一些新命令所代替,不過由於習慣的原因,很多時候我們並不能一下子適應過來 ,例如ifconfig之於ip命令。 最近在升級到centos7時也發現不支援service命令了,systemctl是systemd下

AndroidServiceActivity資料互動的簡單理解

Service跟Activity是最相似的元件,都代表可執行的程式,區別在於:Service一直在後臺執行,沒有跟使用者互動的介面。 啟動與停止Service有兩種方法: 第一種通過startService()與stopService()啟動和停止服務,Se

Linux 用戶的管理

表示 方式 打開 消息接收 users 模式 blog 方法 接收 在linux中建立組的指令是 groupadd 組名 相應的,刪除組的指令: groupdel 組名 查看自己用戶的組: groups 用戶管理: useradd -s/bin/bash -g 組名 用

linuxdudf的區別和聯系

roc 換行 -h lib 文件占用 use .html -m 詳細 1,兩者區別 du,disk usage,是通過搜索文件來計算每個文件的大小然後累加,du能看到的文件只是一些當前存在 的,沒有被刪除的。他計算的大小就是當前他認為存在的所有文件大小的累加和。 df

linuxservice的問題

技術 post detail don mage 解決 art baseline its 1.描述問題 2.解決方案 systemctl stop firewalld systemctl mask firewalld Then, install the iptab

Linux rpmyum的區別

rpm1.rpm :RedHat package manage的簡寫rpm 是linux的一種軟件包名稱,以.rmp結尾,安裝的時候語法為:rpm -ivh,rpm包的安裝有一個很大的缺點就是文件的關聯性太大,有時候裝一個軟件要安裝很多其他的軟件包,很麻煩,2.yum(全稱為 Yellow dog Upda

LinuxSambaNFS的共享示例

Linux中Samba與NFS的共享示例在這裏面所有的服務器為CentOS 6.9,samba客戶端和NFS客戶端均為CentOS 7.2要完成以下操作需要安裝的軟件包:yum install httpd mariadb-server(CentOS6.9是mysql-server)nfs-utils sam

linuxchmodchown兩個命令詳解

In 第一個 ID 利用 root chown 資料 後綴 沒有 在linux系統中chmod,chown命令都可以來設置權限了,但它們也是有區別的,下文小編為各位介紹chmod與chown兩個命令用法與區別介紹。 今天要分享的2個命令也是我們平時常用的,chmod與cho

linuxchmodchown

前言 今天要分享的2個命令也是我們平時常用的,chmod與chown看似拼寫還有點差不多,但是兩者的用途是不同的。chmod是用來設定資料夾和檔案許可權的,比如我們在VPS主機中檔案不可讀寫,需要用來設定777許可權;而chown是用來設定使用者組的,比如授權某使用者組,方便控制使用者許可權。

linuxdudf的區別和聯絡

1,兩者區別  du,disk usage,是通過搜尋檔案來計算每個檔案的大小,然後累加,du能看到的檔案只是一些當前存在的,沒有被刪除的。他計算的大小就是,當前他認為存在的所有檔案大小的累加和。 df,disk free,通過檔案系統來快速獲取空間大小的資訊。當我們刪除

Linuxdfdu的區別

1,兩者區別  du,disk usage,是通過搜尋檔案來計算每個檔案的大小然後累加,du能看到的檔案只是一些當前存在  的,沒有被刪除的。他計算的大小就是當前他認為存在的所有檔案大小的累加和。 df,disk free,通過檔案系統來快速獲取空間大小的資訊,當我們刪除一個

Linuxaptapt-get命令的區別解釋

Ubuntu 16.04 釋出時,一個引人注目的新特性便是 apt 命令的引入。其實早在 2014 年,apt 命令就已經發布了第一個穩定版,只是直到 2016 年的 Ubuntu 16.04 系統釋出時才開始引人關注。 隨著 apt install package 命令的

LinuxCPU記憶體效能監測

在系統維護的過程中,隨時可能有需要檢視 CPU 使用率記憶體使用情況的需要,尤其是涉及到JVM,程式調優的情況,並根據相應資訊分析系統狀況的需要。 top命令 top命令是Linux下常用的效能分析工

LINUXprintfecho的區別

(1)首先echo是回顯,即代表回車顯示,是自帶換行的;而printf只是打印出來,沒有換行 (2)echo只是回顯沒有變數替換功能;printf是有的 舉例:假如我們定義好變數a='hello world' 則 echo "%s" $a  顯示的結果就是%s 而 prin

linuxplatform中斷

學習總結: 在linux2.6中引入platform的概念,包括platform_device與platform_driver結構。每個裝置的資源(地址、中斷號等)在platform_device中的resource中描述,resource結構在kernel/include

linuxcpmcopy異同

同:都是複製功能。 異: 1、mcopy是mtools指令,可以在DOS系統中複製檔案或者在DOS與Linux作業系統之間進行檔案複製。 2、cp命令用於linux系統複製檔案或目錄。   ______________________________________

Linux程序執行緒的概念以及區別

linux程序與執行緒的區別,早已成為IT界經常討論但熱度不減的話題。無論你是初級程式設計師,還是資深專家,都應該考慮過這個問題,只是層次角度不同罷了。對於一般的程式設計師,搞清楚二者的概念並在工作中學會運用是其思考的主要問題;對於資深工程師,如何在系統層面實現兩種技術及其各自的效能和實現代價是其思考的主要問

linux likelyunlikely

轉自  http://blog.csdn.net/tommy_wxie/article/details/7384641 看核心時總遇到if(likely( )){}或是if(unlikely( ))這樣的語句,最初不解其意,現在有所瞭解,所以也想介紹一下。 likely(

AndroidServiceActivity的通訊---回撥介面方式

最近在技術交流群中有人問到:要實現service與activity的高強度通訊用什麼方法? 群友回答的是用handler,但面試官好像不太滿意,後來本人查找了下資料,得到個人的結論:service與activity之前的通訊方式有很多,回撥介面方式、觀察者模式、廣播、還有h

Linux壓縮解壓縮 tar、bzip2、xz

一、檔案壓縮與解壓縮 gizp指令 格式 :gzip [-cdtv#] 檔名 -d : 解壓縮 -t :測試壓縮檔案的一致性 -v :顯示原檔案與壓縮檔案的壓縮比等資訊