Linux服務管理

来源:http://www.cnblogs.com/yan-lei/archive/2017/11/19/7862640.html
-Advertisement-
Play Games

1、簡介與分類 1.系統的運行級別 運行級別命令 系統預設運行級別 [root@AmorLei ~]# vi /etc/inittab # inittab is only used by upstart for the default runlevel. # # ADDING OTHER CONFI ...


1、簡介與分類

1.系統的運行級別

運行級別含義
0 關機
1 單用戶模式,可以想象為Windows的安全模式,主要用於系統修複
2 不完全的命令行模式,不含NFS服務
3 完全的命令行模式,就是標準字元界面
4 系統保留
5 圖形模式
6 重啟動

運行級別命令

[root@AmorLei ~]# runlevel     # 查看運行級別命令
N 3
[root@AmorLei ~]# init 運行級別     # 修改運行級別命令

系統預設運行級別

[root@AmorLei ~]# vi /etc/inittab

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
[root@AmorLei ~]# vi /etc/inittab

2.服務的分類

獨立的服務:可以獨立啟動服務。其特點是:

  • 可以自行獨立啟動,無需通過其他機制的管理
  • 獨立服務一旦啟動載入到記憶體後,就會一直占用記憶體空間和系統資源,直到該服務被停止。
  • 由於服務一直在運行,所以對client的請求有更快的響應速度。

基於xinetd服務:通過xinetd來負責啟動、管理其它服務(逐漸淘汰)。其特點是:

  • 所有的服務由xinetd控管,因此對xinetd可以有安全控管的機制,如網路防火牆
  • clinet請求前,所需服務是未啟動的;直到client請求服務時,xinetd才會喚醒相應服務;一旦連接結束後,相應服務會被關閉。所以super-daemon方式不會一直占用系統資源
  • 既然有請求才會去啟動服務,所以server端的響應速度自然不如stand-alone方式來得快

查詢已安裝的服務

RPM包安裝的服務

[root@AmorLei ~]# chkconfig --list
network            0:off    1:off    2:on    3:on    4:on    5:on    6:off
...

  查看服務自啟動狀態,可以看到所有RPM包安裝的服務

源碼包安裝的服務

  查看服務安裝位置,一般是/usr/local/下

啟動與自啟動

服務啟動:就是在當前系統中讓服務運行,並提供功能。

服務自啟動:自啟動是指讓服務在系統開機或重啟動之後,隨著系統的啟動而自動啟動服務。

3.服務與埠

如果把IP地址比作一間房子,埠就是出入這間房子的門。真正的房子只有幾個門,但是一個IP地址的埠可以有65536個。

埠與服務的對應

/etc/services 文件記錄了網路服務名和它們對應使用的埠號及協議。

查詢系統中開啟的服務

netstat -tlunp
        -t 列出tcp數據
        -u 列出udp數據
        -l 列出正在監聽的網路服務(不包含已連接的網路服務)
        -n 用埠號來顯示服務,而不是用服務名
        -p 列出該服務的進程ID(PID)

會列出系統中所有的已經啟動的服務

[root@AmorLei etc]# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      6054/httpd          
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1407/sshd           
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1570/master         
udp        0      0 172.17.190.178:123          0.0.0.0:*                               1418/ntpd           
udp        0      0 127.0.0.1:123               0.0.0.0:*                               1418/ntpd           
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               1418/ntpd  

[root@AmorLei etc]# netstat -an

2、RPM包服務管理

1.獨立服務的管理

RPM安裝服務和源碼包安裝服務的區別

RPM安裝服務和源碼包安裝服務的區別就是安裝位置的不同

  • 源碼包安裝在指定位置,一般是/usr/local/
  • RPM包安裝在預設位置中

usr是Unix System Resource,即Unix系統資源的縮寫。

    /etc/init.d/ :啟動腳本位置
    /etc/sysconfig/ :初始化環境配置文件位置
    /etc/ :配置文件位置
    /etc/xinetd.conf :xinetd配置文件
    /etc/xinetd.d/ :基於xinetd服務的啟動腳本
    /var/lib/ :服務產生的數據放在這裡
    /var/log/ :日誌

獨立服務的啟動

/etc/init.d/獨立服務名 start | stop | status | restart

[root@AmorLei ~]# /etc/init.d/httpd start
正在啟動 httpd:
[root@AmorLei ~]# /etc/rc.d/init.d/httpd start
[root@AmorLei ~]# ls -l /etc/init.d
lrwxrwxrwx. 1 root root 11 Aug 24 12:21 /etc/init.d -> rc.d/init.d

service 獨立服務名 start|stop|restart|status

只有RedHat系列的Linux系統可以此命令,源碼包不可以使用此命令。

[root@AmorLei ~]# service httpd status
httpd (pid 13986) 正在運行...

獨立服務的自啟動

chkconfig [--level 運行級別] [獨立服務名] [on|off]

[root@AmorLei ~]# chkconfig --list | grep httpd 
httpd            0:off    1:off    2:off    3:off    4:off    5:off    6:off
[root@AmorLei ~]# chkconfig --level 2345 httpd on
[root@AmorLei ~]# chkconfig --list | grep httpd 
httpd            0:off    1:off    2:on    3:on    4:on    5:on    6:off

修改的是文件的自啟動,與服務是否啟動無關。

修改/etc/rc.d/rc.local文件(/etc/rc.local)

開機後將自動執行的命令

[root@AmorLei ~]# vi /etc/rc.d/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

使用ntsysv命令管理自啟動

RedHat專有命令,使用圖形界面對服務運行級別進行修改。

2.基於xinetd服務的管理

安裝xinetd

[root@AmorLei ~]# yum -y install xinetd
Loaded plugins: fastestmirror
Setting up Install Process
Determining fastest mirrors
base                                                                                                            | 3.7 kB     00:00     
epel                                                                                                            | 4.7 kB     00:00     
epel/primary_db                                                                                                 | 6.0 MB     00:00     
extras                                                                                                          | 3.4 kB     00:00     
updates                                                                                                         | 3.4 kB     00:00     
updates/primary_db                                                                                              | 4.7 MB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package xinetd.x86_64 2:2.3.14-40.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
 Package                       Arch                          Version                                 Repository                   Size
=======================================================================================================================================
Installing:
 xinetd                        x86_64                        2:2.3.14-40.el6                         base                        122 k

Transaction Summary
=======================================================================================================================================
Install       1 Package(s)

Total download size: 122 k
Installed size: 259 k
Downloading Packages:
xinetd-2.3.14-40.el6.x86_64.rpm                                                                                 | 122 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 2:xinetd-2.3.14-40.el6.x86_64                                                                                       1/1 
  Verifying  : 2:xinetd-2.3.14-40.el6.x86_64                                                                                       1/1 

Installed:
  xinetd.x86_64 2:2.3.14-40.el6                                                                                                        

Complete!
[root@AmorLei ~]# yum -y install xinetd
[root@AmorLei ~]# chkconfig --list
aegis              0:off    1:off    2:on    3:on    4:on    5:on    6:off
agentwatch         0:off    1:off    2:on    3:on    4:on    5:on    6:off
atd                0:off    1:off    2:off    3:on    4:on    5:on    6:off
auditd             0:off    1:off    2:on    3:on    4:on    5:on    6:off
blk-availability    0:off    1:on    2:on    3:on    4:on    5:on    6:off
cloud-config       0:off    1:off    2:on    3:on    4:on    5:on    6:off
cloud-final        0:off    1:off    2:on    3:on    4:on    5:on    6:off
cloud-init         0:off    1:off    2:on    3:on    4:on    5:on    6:off
cloud-init-local    0:off    1:off    2:on    3:on    4:on    5:on    6:off
cloud-init-upgrade    0:off    1:off    2:on    3:on    4:on    5:on    6:off
crond              0:off    1:off    2:on    3:on    4:on    5:on    6:off
ecs_mq-service     0:off    1:off    2:on    3:on    4:on    5:on    6:off
eni-service        0:off    1:off    2:on    3:on    4:on    5:on    6:off
ip6tables          0:off    1:off    2:on    3:on    4:on    5:on    6:off
iptables           0:off    1:off    2:on    3:on    4:on    5:on    6:off
irqbalance         0:off    1:off    2:off    3:on    4:on    5:on    6:off
iscsi              0:off    1:off    2:off    3:on    4:on    5:on    6:off
iscsid             0:off    1:off    2:off    3:on    4:on    5:on    6:off
lvm2-monitor       0:off    1:on    2:on    3:on    4:on    5:on    6:off
mdmonitor          0:off    1:off    2:on    3:on    4:on    5:on    6:off
multipathd         0:off    1:off    2:off    3:off    4:off    5:off    6:off
netconsole         0:off    1:off    2:off    3:off    4:off    5:off    6:off
netfs              0:off    1:off    2:off    3:on    4:on    5:on    6:off
network            0:off    1:off    2:on    3:on    4:on    5:on    6:off
nscd               0:off    1:off    2:off    3:off    4:off    5:off    6:off
ntpd               0:off    1:off    2:on    3:on    4:on    5:on    6:off
ntpdate            0:off    1:off    2:off    3:off    4:off    5:off    6:off
postfix            0:off    1:off    2:on    3:on    4:on    5:on    6:off
rdisc              0:off    1:off    2:off    3:off    4:off    5:off    6:off
restorecond        0:off    1:off    2:off    3:off    4:off    5:off    6:off
rsyslog            0:off    1:off    2:on    3:on    4:on    5:on    6:off
saslauthd          0:off    1:off    2:off    3:off    4:off    5:off    6:off
sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off
sysstat            0:off    1:on    2:on    3:on    4:on    5:on    6:off
udev-post          0:off    1:on    2:on    3:on    4:on    5:on    6:off
xinetd             0:off    1:off    2:off    3:on    4:on    5:on    6:off

xinetd based services:
    chargen-dgram:     off
    chargen-stream:    off
    daytime-dgram:     off
    daytime-stream:    off
    discard-dgram:     off
    discard-stream:    off
    echo-dgram:        off
    echo-stream:       off
    tcpmux-server:     off
    time-dgram:        off
    time-stream:       off
[root@AmorLei ~]# chkconfig --list

xinetd服務的啟動

[root@AmorLei ~]# vi /etc/xinetd.d/
chargen-dgram   daytime-dgram   discard-dgram   echo-dgram      tcpmux-server   time-stream     
chargen-stream  daytime-stream  discard-stream  echo-stream     time-dgram 

[root@AmorLei ~]# vi /etc/xinetd.d/rsync
service rsync
{
    flags         = REUSE              標誌為REUSE,設定TCP/IP socket 可重用
    socket_type = stream             使用TCP協議數據包
    wait         = no                 允許多個連接同時連接
    user         = root                 啟動服務的用戶為root
    server         = /usr/bin/rsync     服務的啟動程式
    log_on_failure += USERID         登錄失敗後,記錄用戶的ID
    disable        = no                 服務不啟動
}

重啟xinetd服務

[root@AmorLei ~]# service xinetd restart     
Stopping xinetd:                                           [FAILED]
Starting xinetd:                                           [  OK  ]

xinetd服務的自啟動

[root@AmorLei ~]# chkconfig rsync on

ntsysv

3、源碼包服務管理

1.源碼包安裝服務的啟動

使用絕對路徑,調用啟動腳本來啟動。不同的源碼包的啟動腳本不同。可以查看源碼包的安裝說明,查看啟動腳本的方法。

/usr/local/appache2/bin/apachectl start|stop

2.源碼包服務的自啟動

[root@AmorLei ~]# vi /etc/rc.d/rc.local

在文件中添加啟動命令/usr/local/appache2/bin/apachectl start

3.讓源碼包服務被服務管理命令識別

讓源碼包的apache服務能被service命令管理啟動:

ln -s /usr/local/apache2/bin/apachectl /etc/init.d

[root@AmorLei ~]# service apachectl start
httpd: apr_sockaddr_info_get() failed for AmorLei
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

讓源碼包的apache服務能被"chkconfig"與"ntsysv"命令管理自啟動

[root@AmorLei ~]# vi /etc/init.d/apachectl 

#!/bin/sh
# 
# chkconfig: 35 86 76
# description: source package apache

# chkconfig:35 86 76
# 指定httpd腳本可以被chkconfig命令管理。格式是:"chkconfig:運行級別 啟動順序 關閉順序"

#description:source package apache
# 說明,內容隨意

啟動順序、關閉順序不能與"/etc/rc3.d/"中的順序號衝突。

[root@AmorLei ~]# ls /etc/rc3.d/
K10saslauthd    K89rdisc         S10network     S25blk-availability    S50ecs_mq-service    S56xinetd   S98agentwatch
K74nscd         S01sysstat       S11auditd      S25netfs               S51cloud-init-local  S58ntpd     S99local
K75ntpdate      S02lvm2-monitor  S12rsyslog     S26udev-post           S52cloud-init        S80aegis
K87multipathd   S07iscsid        S13irqbalance  S28eni-service         S53cloud-config      S80postfix
K87restorecond  S08ip6tables     S13iscsi       S50aegis               S54cloud-final       S90crond
K89netconsole   S08iptables      S15mdmonitor   S50cloud-init-upgrade  S55sshd              S95atd
[root@AmorLei ~]# ls /etc/rc3.d/
[root@AmorLei ~]# chkconfig --add apachectl

把源碼包apachectl加入chkconfig命令

4、服務管理總結

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有序集SortedSet算是redis中一個很有特色的數據結構,通過這篇文章來總結一下這塊知識點。 原文地址:http://www.jianshu.com/p/75ca5a359f9f 一、有序集SortedSet命令簡介 redis中的有序集,允許用戶使用指定值對放進去的元素進行排序,並且基於該已 ...
  • 一.環境的搭建 1.安裝配置mysql rpm –ivh MySQL-server-5.6.14.rpm rpm –ivh MySQL-client-5.6.14.rpm 啟動mysql 創建hive用戶 grant all on *.* to hadoop@’%’ identified by ‘h ...
  • 語法規則: SELECT * FROM tableName t WHERE 1 = 1 AND 2 = 2 AND EXISTS (SELECT * FROM tableName t2 WHERE t.id = t2.proj_id) SELECT * FROM tableName t WHERE ...
  • 前言 我的情況是,本地安裝了oracle(安裝完成後帶有SQL Developer,不需要再安裝instantclient),創建dblink去連接遠程的mysql。有些朋友可能是 本地使用PL\SQL(需安裝instantclient)去連接 遠程oracle,連接成功後創建並使用dblink去連 ...
  • 參考《Linux內核設計與實現》 ...
  • 較為簡單可行的方式是通過PrintkTime功能為啟動過程的所有內核信息增加時間戳,便於彙總分析。PrintkTime最早為CELF所提供的一個內核補丁,在後來的Kernel 2.6.11版本中正式納入標準內核。所以大家可能在新版本的內核中直接啟用該功能。如果你的Linux內核因為某些原因不能更新為 ...
  • vi: Visual Interface 可視化介面 vim: VI iMproved VI增強版 全屏編輯器,模式化編輯器 vim模式: 編輯模式(命令模式) 輸入模式 末行模式 模式轉換: 編輯 輸入: i: 在當前游標所在字元的前面,轉為輸入模式; a: 在當前游標所在字元的後面,轉為輸入模式 ...
  • 在Fedora20上使用 yum install vim 命令安裝vim時,提示軟體包衝突,現象如下: Transaction check error: file /usr/share/man/man1/vim.1.gz from install of vim-common-2:7.4.475-2. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...