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 #
$command
andの内容を印刷し$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")もありますが、この場合役に立つかどうかはわかりません。