mac-서비스 관리-supervisor
설치하다.
$ brew install supervisor
시작 구성
완료 후 다음과 같은 힌트가 있습니다
To have launchd start supervisor now and restart at login:
brew services start supervisor #
Or, if you don't want/need a background service you can just run:
supervisord -c /usr/local/etc/supervisord.ini
==> Summary #
/usr/local/Cellar/supervisor/3.3.3: 541 files, 6.5MB
힌트 정보는 이미 명확하게 말했다.
supervisord -c /usr/local/etc/supervisord.ini
brew services start supervisor
기본 프로필:
/usr/local/etc/supervisord.ini
hylexus@hylexusPC bin $ brew services start supervisor
==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 12 (delta 0), reused 7 (delta 0), pack-reused 0
Unpacking objects: 100% (12/12), done.
Tapped 0 formulae (40 files, 54.2KB)
==> Successfully started `supervisor` (label: homebrew.mxcl.supervisor)
사실 설치가 완료된 후에 자동으로
plist
파일 템플릿이 생성되었고 위치는 여기에 있습니다: /usr/local/Cellar/supervisor/3.3.3/homebrew.mxcl.supervisor.plist
.일반 명령
supervisor에서 제공하는 실행 파일(링크 파일):
hylexus@hylexusPC bin $ pwd
/usr/local/Cellar/supervisor/3.3.3/bin
hylexus@hylexusPC bin $ ls
echo_supervisord_conf pidproxy supervisorctl supervisord
명령 도움말:
# supervisor shell
hylexus@hylexusPC etc $ supervisorctl
http://localhost:9001 refused connection
supervisor>
hylexus@hylexusPC etc $ supervisorctl -c /usr/local/etc/supervisord.ini
supervisor> help
default commands (type help ):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version
supervisor>
####################
hylexus@hylexusPC etc $ supervisorctl --help
supervisorctl -- control applications run by supervisord from the cmd line.
Usage: /usr/local/bin/supervisorctl [options] [action [arguments]]
Options:
-c/--configuration FILENAME -- configuration file path (searches if not given)
-h/--help -- print usage message and exit
-i/--interactive -- start an interactive shell after executing commands
-s/--serverurl URL -- URL
hylexus@hylexusPC bin $ echo_supervisord_conf
[unix_http_server]
file=/usr/local/var/run/supervisor.sock ; the path to the socket file
;chmod=0700 ; socket file mode (default 0700)
;chown=nobody:nogroup ; socket file uid:gid owner
;username=user ; default is no username (open server)
;password=123 ; default is no password (open server)
;[inet_http_server] ; inet (TCP) server disabled by default
;port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface
;username=user ; default is no username (open server)
;password=123 ; default is no password (open server)
; ......
supervisor> reload
Really restart the remote supervisord process y/N? y
Restarted supervisord
supervisor> start logstash
logstash: started
supervisor> stop logstash
구성 예제(logstash)
구성 파일의 마지막 행은 다음과 같습니다.
[include]
files = /usr/local/etc/supervisor.d/*.ini
많은 소프트웨어의 프로필은 이 방법으로
nginx
와 유사하다. 마지막 줄의 프로필은 files
가 지정한 디렉터리에 .ini
로 끝나는 파일도 프로필로 포함하는 것을 말한다.이렇게 하면 서로 다른 서비스에 대해 서로 다른 프로필을 쉽게 설정할 수 있다.
다음은 샘플 레벨 구성
logstash
을 살펴보겠습니다.hylexus@hylexusPC supervisor.d $ vim /usr/local/etc/supervisor.d/logstash.ini
다음을 기록합니다.
[program:logstash]
directory = /Users/hylexus/app/logstash-5.2.0/bin
command = /Users/hylexus/app/logstash-5.2.0/bin/logstash -f /Users/hylexus/app/logstash-5.2.0/my-task/echo.conf -l /Users/hylexus/app/logstash-5.2.0/logs/test-logstash.log
autostart = false
startsecs = 5
autorestart = true
startretries = 3
user = hylexus
redirect_stderr = true
stdout_logfile_backups = 20
stdout_logfile=/usr/local/var/log/logstash.log
stdout_logfile_maxbytes=10MB
stderr_logfile=/usr/local/var/log/logstash-err.log
stderr_logfile_maxbytes=10MB
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere
echo.conf
input {
stdin { }
}
output {
stdout { }
}
hylexus@hylexusPC etc $ supervisorctl -c /usr/local/etc/supervisord.ini
supervisor>
supervisor> reload
Really restart the remote supervisord process y/N? y
Restarted supervisord
supervisor> start logstash
logstash: started
supervisor> status
logstash RUNNING pid 41344, uptime 0:01:34
hylexus@hylexusPC supervisor.d $ tail -f /usr/local/var/log/logstash.log
Sending Logstash's logs to /usr/local/var/run/log/logstash.log which is now configured via log4j2.properties
[2017-10-08T21:10:25,839][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>500}
[2017-10-08T21:10:25,855][INFO ][logstash.pipeline ] Pipeline main started
[2017-10-08T21:10:25,921][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
supervisor> stop logstash
logstash: stopped
supervisor> status
logstash STOPPED Oct 08 09:11 PM
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.