本文的目的在於通過實例進一步瞭解linux的服務相關的知識
本文編寫所處的環境:Ubuntu 16.04 Redis 2.8.24
- redis的安裝
建議使用源碼安裝
cd /home/squirrelchen/Downloads # squirrelchen用戶目錄下的下載文件夾,通常在此文件夾下載安裝程序包
wget http://download.redis.io/releases/redis-2.8.24.tar.gz #下載redis的源碼編譯包
sudo cp redis-2.8.24.tar.gz /usr/local/redis #移動到/usr/local/redis 通常安裝安裝的路徑 由於/usr/local 訪問需要權限 因此加sudo
sudo tar -vzxf redis-2.8.24.tar.gz #解壓縮文件夾
cd redis-2.8.24.tar.gz #進入redis文件夾
make #make編譯
sudo make prefix=/usr/local/redis install #安裝到/usr/local/redis
- redis的運行和測試
cd /usr/local/redis # 切換到安裝目錄
./redis-server # 運行redis-server
redis-cli #運行redis-cli
#測試redis
redis> set foo bar
OK
redis> get foo
"bar"
- redis設置爲系統服務並自啓動
sudo cp /home/squirrelchen/Downloads/redis-2.8.24/utils/redis_init_script /etc/init.d #移動redis啓動腳本並放到/etc/init.d/目錄下 此目錄通常存放都是系統服務
cd /etc/init.d
sudo mv redis_init_script redis_6379 # 重命名爲redis_端口號 (可自定義端口號,在配置文件中配置)
sudo vim redis_6379 #vim編輯此文件
#需要更改的配置如下(其實參照官方給的文件,改動並不是很大,甚至幾乎不用改,此處提出來,只是讓人明白,最重要的最主要的都有那些配置項)
REDISPORT=6379 #端口號
EXEC=/usr/local/bin/redis-server #redis-server路徑
CLIEXEC=/usr/local/bin/redis-cli #redis-cli路徑
PIDFILE=/var/run/redis_${REDISPORT}.pid #pid文件路徑
CONF="/etc/redis/${REDISPORT}.conf" #redis-配置文件路徑
#保存此文件並離開 以上是配置自啓動的文件
參照以上的配置 建立/etc/redis/
sudo mkidr /etc/redis
cd /etc/redis
sudo cp /home/squirrelchen/Downlaods/redis-2.8.24/redis.conf 6379.conf #移動配置文件到此處
sudo vim 6379.conf
# 改一下配置項
daemonize yes #開啓守護進程
pidfile /var/run/redis_6379.pid #pid文件路徑
loglevel debug # 默認靜默模式,爲了方便調試,我開了debug模式
logfile /var/log/redis.log #log日誌存放處
#以上改完之後保存退出
#注意,Ubuntu16.04不支持了chckconfig取而代之的是sysv-rc-conf
sudo apt-get install sysv-rc-conf sysv-rc #安裝sysv-rc-conf
sudo sysv-rc-conf #查看系統服務
sudo upadte-rc.d redis_6379 defaulats #加入系統自啓動服務
sudo reboot # 重啓
redis-cli #連接redis
-
linux的服務安裝和配置流程
5.1 wget 下載服務的源代碼
5.2 tar 解壓縮壓縮包
5.3 cd 文件夾或者 cd 到 bin/ 或者 cd 到 src/
5.4 使用make編譯 (編譯之前可以試試用configure測試編譯環境,如果缺少依賴,就會提示,安裝好依賴包)
5.6 使用make install 安裝 prefix=/usr/local/xxx 通常指定安裝到此處,使得所有用戶都可以看到並運行該服務
5.7 cp 該服務的啓動腳本文件到/etc/init.d/xxx 目錄下 並拷貝此服務的配置文件到/etc/xxx 下 編輯合適的配置項
5.8 sudo update-rc.d xxxx defaults 加入到系統自啓動服務項中
5.9 sudo reboot 重啓
5.10 sudo sysv-rc-conf 查看系統服務 -
深入理解linux的服務相關
6.1 系統的服務命令之chkconfig
查看系統上所有的服務(不等於正在運行的服務)
sudo apt-get install chkconfig
sudo yum install chkconfig # 安裝chkconfig
chkconfig / chkconfig --list #系統上運行的服務
查看某一個服務的狀態
chkconfig --list service-name #查看某一個服務狀態
服務運行所處的級別
0 關機
1 單用戶
2 無網絡環境的多用戶
3 有網絡環境的多用戶
4 系統未使用
5 桌面環境
6 重啓
設置某一服務在某一級別的運行狀態
sudo chkconfig --levels/level xxx service-name on/off/reset/
新增服務
1. 需要把init腳本拷貝到 /etc/init.d/ 目錄下
2. 需要在運行腳本中 寫入 \# chkconfig 運行級別 開啓優先級 關閉優先級
3. sudo chkconfig --add service-name
刪除服務
sudo chkconfig --del service-name