FreeBSD에서 간단한 rc.d 스크립트 작성

FreeBSD에서 간단한 rc.d 스크립트 작성

FreeNAS 호스트의 FreeBSD Jail에서 ELK 스택을 실행하고 싶습니다. 간단한 init/rc.d 스크립트가 제대로 작동하는 데 문제가 있습니다.

#!/bin/sh
. /etc/rc.subr

name=logstash
rcvar=logstash_enable

load_rc_config $name

logstash_bin="/usr/local/bin/${name}/bin/${name}"
logstash_conf="/usr/local/etc/${name}/${name}.conf"
logstash_pid="/var/run/${name}.pid"

command="/usr/sbin/daemon"
command_args="-f -p ${logstash_pid} ${logstash_bin} -f ${logstash_conf} web"

run_rc_command "$1"

스크립트를 실행하면 Logstash가 이제 시작되었다는 메시지가 반환되지만 "ps"는 ​​또 다른 내용을 알려줍니다.

root@logstash:/var/log # service logstash start
Starting logstash.
root@logstash:/var/log # ps aux
USER   PID %CPU %MEM   VSZ  RSS TT  STAT STARTED    TIME COMMAND
root  2963  0.0  0.0 12076 1636 ??  SsJ   3:58PM 0:00.02 /usr/sbin/syslogd -s
root  3014  0.0  0.0 14176 1592 ??  SsJ   3:58PM 0:00.01 /usr/sbin/cron -s
root 57344  0.0  0.0 17564 3736  0  SJ    5:31PM 0:00.18 csh
root 61945  0.0  0.0 14220 1768  0  R+J   7:24PM 0:00.00 ps aux
root@logstash:/var/log #

$commandand의 내용을 인쇄 $command_args하고 수동으로 입력하면 완벽하게 작동합니다.

"command="echo /usr/sbin/daemon" 출력:

/etc/rc.d/logstash: WARNING: cannot read shebang line from echo
/etc/rc.d/logstash: WARNING: run_rc_command: cannot run echo /usr/sbin/daemon

내가 뭘 잘못하고 있는지 어떤 아이디어가 있습니까?

답변1

logtash_bin이 정확합니까? "/usr/local/bin/logstash/bin/logstash"가 의심스러워 보입니다.

RC 디버깅 메커니즘(예: "rc_debug=true /usr/local/etc/rc.d/logstash start")도 있지만 이 경우 도움이 될지는 잘 모르겠습니다.

관련 정보