溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中的進(jìn)程守護(hù)supervisor安裝配置及使用

發(fā)布時(shí)間:2020-08-21 02:04:19 來(lái)源:腳本之家 閱讀:295 作者:行星帶 欄目:服務(wù)器

supervisor是一個(gè)很好的守護(hù)程序管理工具,配置方面自動(dòng)啟動(dòng),日志輸出,自動(dòng)切割日志等等一系列強(qiáng)大功能,下面是在CentOS下安裝使用supervisor的記錄。

安裝

# epel源
yum install epel-release
# 安裝supervisor
yum install -y supervisor
# 開(kāi)機(jī)自啟動(dòng)
systemctl enable supervisord
# 啟動(dòng)supervisord服務(wù)
systemctl start supervisord 
Bash

配置路徑

# 主配置文件
/etc/supervisord.conf
# 運(yùn)行程序配置文件夾
/etc/supervisord.d/
Bash

操作命令

systemctl stop supervisord
systemctl start supervisord
systemctl status supervisord
# 重新加載配置文件,不影響正在運(yùn)行的程序
systemctl reload supervisord
systemctl restart supervisord
Bash

使用測(cè)試

寫(xiě)一個(gè)測(cè)試腳本test.php,記錄啟動(dòng)次數(shù)和運(yùn)行。

<?php
try {
  $a = file_get_contents('./times.json');
} catch (Exception $e) {
  $a = 0;
}
$a ++;
file_put_contents('./times.json', $a);
echo date('Y-m-d H:i:s') . " 這是第{$a}次啟動(dòng)!!!!" . PHP_EOL;

$i = 1;
while (1) {
  echo date('Y-m-d H:i:s') . " 第{$i}次輸出" . PHP_EOL;
  $i ++;
  sleep(5);
}

PHP

在程序配置文件夾/etc/supervisord.d中添加test.ini:

[program:test]
directory=/home/wwwroot/test.cc
command=php test.php
autostart=true
autorestart=true
stderr_logfile=/home/wwwroot/test.cc/log/error.log
stdout_logfile=/home/wwwroot/test.cc/log/out.log
Ini

上面只是一些必要的基本配置,更詳細(xì)的配置參考:

;[program:theprogramname]
;command=/bin/cat       ; the program (relative uses PATH, can take args)
;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
;numprocs=1          ; number of processes copies to start (def 1)
;directory=/tmp        ; directory to cwd to before exec (def no cwd)
;umask=022           ; umask for process (default None)
;priority=999         ; the relative start priority (default 999)
;autostart=true        ; start at supervisord start (default: true)
;autorestart=true       ; retstart at unexpected quit (default: true)
;startsecs=10         ; number of secs prog must stay running (def. 1)
;startretries=3        ; max # of serial start failures (default 3)
;exitcodes=0,2         ; 'expected' exit codes for process (default 0,2)
;stopsignal=QUIT        ; signal used to kill process (default TERM)
;stopwaitsecs=10        ; max num secs to wait b4 SIGKILL (default 10)
;user=chrism          ; setuid to this UNIX account to run the program
;redirect_stderr=true     ; redirect proc stderr to stdout (default false)
;stdout_logfile=/a/path    ; stdout log path, NONE for none; default AUTO
;stdout_logfile_maxbytes=1MB  ; max # logfile bytes b4 rotation (default 50MB)
;stdout_logfile_backups=10   ; # of stdout logfile backups (default 10)
;stdout_capture_maxbytes=1MB  ; number of bytes in 'capturemode' (default 0)
;stdout_events_enabled=false  ; emit events on stdout writes (default false)
;stderr_logfile=/a/path    ; stderr log path, NONE for none; default AUTO
;stderr_logfile_maxbytes=1MB  ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups=10   ; # of stderr logfile backups (default 10)
;stderr_capture_maxbytes=1MB  ; number of bytes in 'capturemode' (default 0)
;stderr_events_enabled=false  ; emit events on stderr writes (default false)
;environment=A=1,B=2      ; process environment additions (def no adds)
;serverurl=AUTO        ; override serverurl computation (childutils)
Ini

運(yùn)行重啟或者重載配置命令加載新配置:

systemctl restart supervisord
systemctl reload supervisord
Bash

查看進(jìn)程:

[root@localhost test.cc]# ps -aux | grep test.php
root   22277 0.0 0.6 269732 12124 ?    S  17:38  0:00 php test.php
root   22335 0.0 0.0 112712  996 pts/0  S+  17:41  0:00 grep --color=auto test.php
Bash

可以重啟服務(wù)器,或者kill -9 PID殺死進(jìn)程,會(huì)發(fā)現(xiàn)supervisor會(huì)第一時(shí)間重啟程序,達(dá)到了守護(hù)進(jìn)程的目的。

關(guān)于配置方面仔細(xì)看看上面的參考,基本上涵蓋了需要的功能,多進(jìn)程的運(yùn)行,切割日志的大小,保留數(shù)量等等,功能強(qiáng)大而且使用。

更多高級(jí)功能請(qǐng)參考supervisor官網(wǎng)使用手冊(cè):傳送門

總結(jié)

以上所述是小編給大家介紹的Linux中的進(jìn)程守護(hù)supervisor安裝配置及使用,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)億速云網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI