1.服務簡介和分類
1.1 運行級別
1.1.1 運行級別分類
運行級別 |
含義 |
0 |
關機 |
1 |
單用戶,相似於Window的安全模式,主要用於系統修復 |
2 |
不徹底多用戶,相似於字符界面,但不包含NFS(Linux和Window進行文件共享)服務 |
3 |
完整的命令行模式,就是標準的字符界面 |
4 |
系統保留未使用 |
5 |
圖形界面 |
6 |
重啓 |
1.1.2 查看上一個級別和當前級別
runlevel
N 3
複製代碼
1.1.3 切換運行級別
init 5
複製代碼
1.1.4 設置默認運行級別
vi /etc/inittab
id:3:initdefault:
複製代碼
1.2 服務的分類
- 系統開啓的服務越少,服務器就會更加穩定和安全
- 服務安裝方式不一樣,啓動的方式也不一樣
1.2.1 服務管理的方式
RPM包
安裝的服務,由軟件包做者指定安裝位置,獨立的服務,絕大多數服務都是獨立運行在內存中的,能夠直接響應客戶端的請求
源碼包
安裝的服務,由咱們用戶決定安裝位置
1.2.2 查看RPM包安裝的服務
chkconfig --list
複製代碼
1.2.3 查看源碼包安裝的服務
- 查看自定義的安裝位置,默認爲
/usr/local
下
usr=Unix System Resource
系統資源
1.2.4 啓動和自啓動
- 啓動服務就是指讓此服務在當前系統中運行,並向客戶端提供服務
- 服務自啓動就是指經過設置,讓此服務在開機或者重啓後隨着系統啓動而自動啓動
1.3 服務與端口
查看系統中的運行中的進程html
ps -aux
複製代碼
查看常見服務端口nginx
cat /etc/services
複製代碼
1.4 查詢系統中監聽的端口
參數 |
含義 |
-t |
列出tcp數據 |
-u |
列出udp數據 |
-l |
列出正在監聽的網絡服務 |
-n |
用端口號來顯示服務,而非服務名 |
-p |
列出該服務的進程ID |
2. PRM包服務管理
- RMP 是 LINUX 下的一種軟件的可執行程序,你只要安裝它就能夠了。這種軟件安裝包一般是一個RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),後綴是.rpm
- RPM是Red Hat公司隨Redhat Linux推出了一個軟件包管理器,經過它可以更加輕鬆容易地實現軟件的安裝
2.1 rpm命令
用途 |
命令 |
|
安裝軟件 |
執行rpm -ivh rpm 包名 |
其中i 表示安裝install,v 表示顯示安裝過程verbose,h 表示顯示進度 |
升級軟件 |
執行rpm -Uvh rpm 包名 |
U表示升級update |
反安裝 |
執行rpm -e rpm 包名 |
|
查詢軟件包的詳細信息 |
執行rpm -qpi rpm 包名 |
|
查詢某個文件是屬於那個rpm包的 |
執行rpm -qf rpm 包名 |
|
查該軟件包會向系統裏面寫入哪些文件 |
執行 rpm -qpl rpm 包名 |
|
2.2 repo
- repo文件是yum源(軟件倉庫)的配置文件,一般一個repo文件定義了一個或者多個軟件倉庫的細節內容,例如咱們將從哪裏下載須要安裝或者升級的軟件包,repo文件中的設置內容將被yum讀取和應用
- 服務器端:在服務器上面存放了全部的RPM軟件包,而後以相關的功能去分析每一個RPM文件的依賴性關係,將這些數據記錄成文件存放在服務器的某特定目錄內。
- 客戶端:若是須要安裝某個軟件時,先下載服務器上面記錄的依賴性關係文件(可經過WWW或FTP方式),經過對服務器端下載的紀錄數據進行分析,而後取得全部相關的軟件,一次所有下載下來進行安裝。
cat /etc/yum.conf
/etc/yum.repos.d
/etc/yum.repos.d/nginx.repo
複製代碼
2.3 RPM包的默認安裝位置
文件 |
含義 |
/etc |
配置文件位置 |
/etc/init.d |
啓動腳本位置 |
/etc/sysconfig |
初始化環境配置文件位置 |
/var/lib |
服務產生的數據放在這裏 |
/var/log |
日誌 |
2.4 啓動命令
systemd
是Linux
系統最新的初始化系統(init
),做用是提升系統的啓動速度,儘量啓動較少的進程,儘量更多進程併發啓動
systemd
對應的進程管理命令是systemctl
rpm -ivh http:
yum info nginx
yum install -y nginx
systemctl start nginx.service
netstat -ltun | grep 80
curl http:
複製代碼
2. 源碼包服務管理
- 使用絕對路徑,調用啓動腳原本啓動。
- 不一樣的源碼包的啓動腳本不同
- 要經過閱讀源碼包安裝說明的方式來查看啓動的方法
2.1 安裝nginx
2.1.1 安裝依賴
yum install gcc gcc-c++ perl -y
複製代碼
2.1.2 下載源文件
2.1.2.1 PCRE
wget http:
複製代碼
2.1.2.2 zlib
wget http:
複製代碼
2.1.2.3 openssl
wget http:
複製代碼
2.1.2.4 nginx
wget http:
複製代碼
2.1.3 解壓文件
mkdir /root/nginxinstall
cd /root/nginxinstall
tar -zxvf nginx-1.10.1.tar.gz
tar -zxvf openssl-1.0.2h.tar.gz
tar -zxvf pcre-8.44.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
複製代碼
2.1.3 配置和安裝
cd nginx-1.10.1
./configure --prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/nginx.pid \
--error-log-path=/usr/local/nginx/error.log \
--http-log-path=/usr/local/nginx/access.log \
--with-http_ssl_module \
--with-mail --with-mail_ssl_module \
--with-stream --with-threads \
--user=comex --group=comexgroup \
--with-pcre=/root/nginxinstall/pcre-8.44 \
--with-zlib=/root/nginxinstall/zlib-1.2.11 \
--with-openssl=/root/nginxinstall/openssl-1.0.2n
make && make install
/usr/local/nginx/sbin/nginx -t
nginx: [emerg] getpwnam("comex") failed
useadd nginx # 添加nginx用戶
vi /usr/local/nginx/conf/nginx.conf
user nginx;
複製代碼
2.1.4 管理命令
功能 |
命令 |
啓動 |
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf |
從容中止 |
ps -ef grep nginx;kill -QUIT 2072 |
快速中止 |
ps -ef grep nginx;kill -TERM 2132; kill -INT 2132 |
強制中止 |
pkill -9 nginx |
驗證nginx配置文件是否正確 |
nginx -t |
重啓Nginx服務 |
nginx -s reload |
查找當前nginx進程號 |
kill -HUP 進程號 |
2.1.5 以服務啓動service
Nginx
啓動、關閉、從新加載腳本
- 建立文件
etc/init.d/nginx
/etc/init.d/nginx start
#! /bin/bash
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
pid=$(ps -ef | grep nginx | grep master | awk '{print $2}')
echo $pid > "$PIDFILE"
}
do_stop() {
kill -INT `cat $PIDFILE` || echo -n "nginx not running"
}
do_reload() {
kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading configuration"
do_reload
echo "."
;;
restart)
echo -n "Restarting $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0
複製代碼
2.1.7 chkconfig
- 指定
nginx
腳本能夠被chkconfig
命令管理
2.1.7.1 開機啓動
chkconfig --add nginx
chkconfig --list
chkconfig --level 2345 nginx on
chkconfig nginx off
複製代碼