使用信號量管理nginx進程更加快速方便,命令行命令其實就是對應的信號量。
nginx啟動時對生成一些子進程,子進程數(shù)量由cpu數(shù)量決定,但是也可以在配置子文件中修改。一般使用信號量只管理主進程,子進程由主進程管理。
nginx常用信號量量命令stop、reload、quit、reopen
kill -15 PID [ kill -s SIGTERM PID ] [ nginx -s stop ]
立即停止nginx,即使有正在處理中的連接也會停止。
kill -1 PID [kill -s SIGHUP PID ] [nginx -s reload ]
nginx重載配置文件,根據(jù)配置文件生成新的子進程(數(shù)量取決于配置文件)。并通知舊的子進程處理完當前連接后關閉。這個過程中新舊子進程可能同時存在,這個命令實現(xiàn)了不停機生效新的配置,完成服務器的平滑升級。
kill -3 PID [ kill -s SIGQUIT PID ] [ nginx -s quit ]
關閉監(jiān)聽句柄,處理完當前連接后關閉進程
kill -10 PID [ kill -s SIGUSR1 PID ] [ nginx -s reopen ]
日志切割,nginx長時間運行日志文件會越來越大,有時候我們想把日志文件分開保存。當把日志文件剪切走時,nginx就沒有地方寫日志了。這時候就要使用reopen命令,新建一個日志文件,繼續(xù)記錄日志。
nginx其他的信號量命令
kill -12 PID [kill -s SIGUSR2 PID ]
新打開一個nginx主進程,新舊主進程同時存在,用于nginx的熱部署
kill -28 PID [ kill -s SIGWINCH PID ]
對nginx主進程使用,使用時子進程關閉,主進程進入休眠狀態(tài)
reopen int usr1 usr2 winch