CentOS進程升級與維護注意事項
/etc/nginx/nginx.conf
、/etc/httpd/conf/httpd.conf
)、業務數據(如數據庫文件、網站上傳目錄)及二進制程序(如/usr/local/nginx/sbin/nginx
)??墒褂?code>tar命令打包(例如tar -czvf backup_$(date +%F).tar.gz /etc /var/www/html
),或通過版本控制工具(如Git)跟蹤配置變更,確保升級失敗時可快速回滾。rpm -qR package_name
(如rpm -qR nginx
)查看新版本的依賴要求,確保系統已安裝所有必需的庫文件(如pcre-devel
、openssl-devel
)。若依賴缺失,可通過yum install
命令提前安裝(例如yum install -y pcre-devel openssl-devel
),避免升級過程中出現“依賴錯誤”。systemctl
(CentOS 7及以上)或service
命令停止服務,避免強制終止導致數據丟失。例如:sudo systemctl stop nginx # 停止Nginx服務
sudo systemctl status nginx # 確認服務已停止(狀態為"inactive (dead)")
若需強制停止,可使用kill -TERM <PID>
(發送SIGTERM信號,允許進程清理資源),避免使用kill -9
(SIGKILL信號,強制終止,可能導致數據損壞)。/opt
),并賦予執行權限:sudo tar -xzf nginx-1.24.0.tar.gz -C /opt
sudo chmod +x /opt/nginx-1.24.0/sbin/nginx
nginx -V
獲?。?,確保配置一致性。例如:cd /opt/nginx-1.24.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream
make # 僅編譯,不安裝
sudo cp objs/nginx /usr/local/nginx/sbin/ # 覆蓋舊二進制文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak
),便于后續回滾。systemctl
命令重啟服務,觸發配置重載(避免中斷現有連接):sudo systemctl restart nginx # 重啟服務
sudo systemctl reload nginx # 僅重載配置(不中斷連接)
kill -USR2 $(cat /usr/local/nginx/logs/nginx.pid) # 通知舊進程準備升級
kill -WINCH $(cat /usr/local/nginx/logs/nginx.pid) # 優雅關閉舊進程(保留master線程用于回滾)
驗證新版本正常后,可發送kill -QUIT
終止舊進程。systemctl status
命令確認服務運行狀態(如active (running)
),并通過ps aux | grep process_name
(如ps aux | grep nginx
)查看進程是否正常啟動。curl
命令測試API接口(如curl -I http://localhost
),或檢查日志文件(如tail -f /usr/local/nginx/logs/access.log
)確認業務功能正常,無報錯信息。top
、htop
(需安裝yum install -y htop
)查看CPU、內存占用,或通過vmstat 1 5
(每秒采樣1次,共5次)監控系統負載,確保升級后性能無明顯下降。sudo cp /usr/local/nginx/sbin/nginx_bak /usr/local/nginx/sbin/nginx # 恢復舊二進制文件
sudo systemctl restart nginx # 重啟舊服務
journalctl -u nginx -b
(查看本次啟動日志)定位錯誤,恢復舊版本后重啟服務。yum update
命令定期更新系統及軟件包,優先安裝安全補丁(如CentOS的yum-cron
工具可自動應用安全更新)。更新前需在測試環境驗證,避免引入新問題。systemctl list-units --type=service
查看所有服務狀態,或通過auditd
(yum install -y auditd
)監控關鍵進程的啟動/停止操作(如auditctl -a exit,always -F arch=b64 -S execve -k process_monitor
),及時發現異常。worker_processes
設置為CPU核心數,worker_connections
設置每個進程的最大連接數),并通過systemd
的Restart=on-failure
策略(在/usr/lib/systemd/system/nginx.service
中設置)實現進程崩潰后自動重啟。