시스템 서비스

systemd 또는 supervisord를 사용하면 fluid 프로세스를 시스템 서비스로 실행하고 관리할 수 있으며 시스템이 시작될 때 fluid 프로세스가 자동으로 시작되도록 할 수 있다.

시작/종료 스크립트 생성

fluid-start.sh 파일을 생성한다.

$ vi fluid-start.sh
  • FLUID server

    #!/bin/bash 
    exec /data/fluid serve --config /data/serve-config.yaml
  • FLUID relay

    #!/bin/bash 
    exec /data/fluid relay --config /data/relay-config.yaml
$ chmod 755 fluid-start.sh

fluid-stop.sh 파일을 생성한다.

$ vi fluid-stop.sh
  • Fluid server

    #!/bin/bash 
    kill -9 `ps -aef | grep 'fluid serve' | grep -v grep | awk '{print $2}'`
  • Fluid relay

    #!/bin/bash 
    kill -9 `ps -aef | grep 'fluid relay' | grep -v grep | awk '{print $2}'`
$ chmod 755 fluid-stop.sh

systemd

fluid.service 파일을 생성한다.

$ cd /etc/systemd/system
$ sudo vi fluid.service
[Unit]   
Description=fluid service   
StartLimitBurst=10   
StartLimitIntervalSec=10   
  
[Service]   
User=machbase   
LimitNOFILE=65535   
ExecStart=/data/fluid-start.sh
ExecStop=/data/fluid-stop.sh
ExecStartPre=sleep 2   
WorkingDirectory=/data   
Restart=always   
RestartSec=1   
  
[Install]   
WantedBy=multi-user.target   
  • 사용환경에 따라서 ‘User’와 경로는 수정한다.

service 활성화

$ sudo chmod 755 fluid.service
$ sudo systemctl daemon-reload

시스템 부팅 후에 자동으로 실행되도록 설정한다.

$ sudo systemctl enable fluid.service

완료

service가 활성화된 후에는 아래의 명령으로 서비스를 제어할 수 있다.

$ sudo systemctl start fluid.service
$ sudo systemctl status fluid.service
$ sudo systemctl stop fluid.service

supervisord

fluid.conf 파일을 생성한다.

$ cd /etc/supervisor/conf.d
$ sudo vi fluid.conf
[program:fluid]
command=/data/fluid-start.sh
priority=10   
autostart=true   
autorestart=true   
stdout_logfile=/data/log/fluid_stdout.log   
stderr_logfile=/data/log/fluid_stderr.log   
user=machbase   
  • 사용환경에 따라서 ‘User’와 경로는 수정한다.
  • 위의 경우 log folder인 /data/log는 미리 생성되어 있어야 한다.

Supervisord를 갱신한다.

$ sudo supervisorctl reread
$ sudo supervisorctl update

완료

service가 활성화된 후에는 아래의 명령으로 서비스를 제어할 수 있다.

$ sudo supervisorctl start fluid
$ sudo supervisorctl status fluid
$ sudo supervisorctl stop fluid
최근 업데이트