[リストへもどる]
一括表示


<PR> 月額2100円/3675円でグローバル固定IPを取得、サーバ構築・VPN・SOHOが可能。 「ZOOT for Bフレッツ」

タイトルswatchの起動スクリプトについて
記事No336
投稿日: 2005/12/14(Wed) 20:00
投稿者風雲
はじめまして。風雲と申します。

http://www.marronkun.net/linux/security/swatch_000037.html
http://linuxexpert.ne.jp/modules/pukiwiki/99.html

こちらの記事を参考に、swatchの起動スクリプトを書いてまして、うまく動かず、困っており、ご教授願えればと思います。

#! /bin/sh
#
#chkconfig: 2345 99 01
# description: tcpserver
# Source function library.
. /etc/init.d/functions

RETVAL=0

# See how we were called.
case "$1" in
start)
echo -n "Starting Swatch: "
/usr/bin/swatch -c /root/.swatchrc -t /var/log/apache2/ssl_request_log &
/usr/bin/swatch -c /root/.swatchrc -t /var/log/auth.log &
RETVAL=$?
echo
;;

stop)
echo -n "Stopping Swatch: "
killproc tail
RETVAL=$?
echo
;;

restart)
$0 stop
$0 start
RETVAL=$?
;;

と書いた/etc/init.d/swatchを作りまして、わたくしの環境が、/etc/ini.d/以下にswatchやapacheなど起動スクリプトがありますので、「. /etc/rc.d/init.d/functions」を「. /etc/init.d/functions」と書き換え、サーバを再起動して、わざとエラーを出してみたのですが何もメールで届かないので、psで確認してみると、swatchは起動していないようでした。

swatch -c /root/.swatchrc -t /var/log/auth.log &
/usr/bin/swatch -c /root/.swatchrc -t /var/log/auth.log &

と実行させると、エラーがあれば、メールは届きますので、/etc/init.d/swatchの書き方が悪いのかなと思っています。

/root/.swatchrcを起動しているので権限が必要なのかわからないのですが、念のため(カッコでどういうことをしているのか思いつく限りで書いてみました。実際のスクリプトにはカッコ内は書かれていません。)、

#! /bin/sh
#
#chkconfig: 2345 99 01 (2,3,4,5のランレベルで起動。99番目に始まり、01番目に終わる)
# description: tcpserver (tcpserverで起動?)
# Source function library.
. /etc/init.d/functions (funcionライブラリを呼ぶ?)

RETVAL=0 (変数を定義)

# See how we were called.
case "$1" in (startの場合)
start)
echo -n "Starting Swatch: "
su - root -c /usr/bin/swatch -c /root/.swatchrc -t /var/log/apache2/ssl_request_log &
su - root -c /usr/bin/swatch -c /root/.swatchrc -t /var/log/auth.log &
RETVAL=$? (startした場合の変数を定義)
echo
;;

stop)
echo -n "Stopping Swatch: "
su - root -c killproc tail (受け取った引数を停止。tailである理由はなぞです。)
RETVAL=$? (上記での変数を定義)
echo
;;

restart)
su - root -c $0 stop (stopして)
su - root -c $0 start (startする)
RETVAL=$? (変数を定義)
;;

*)
echo "Usage: swatch {start|stop|restart}"
exit 1 (エラーの場合は1を返す?)
esac (caseの反対だということですが、理解できていません。)
exit $RETVAL (変数を出る。)

と「su - -c」で権限を与えてやってみましたが、それでもやはり起動時には自動的に動きませんでした。
一応、
swatch -c /root/.swatchrc -t /var/log/apache2/ssl_request_log &
swatch -c /root/.swatchrc -t /var/log/auth.log &
のように、/usr/bin/swatchのパスをswatchにも変えてみましたが、それでもダメでした。

わからないところだらけで申し訳ないのですが、参考サイトでも構いませんので、アドバイスいただけますと助かります。

よろしくお願いします。

P.S.
OSはDebianです。

タイトルRe: swatchの起動スクリプトについて
記事No338
投稿日: 2005/12/14(Wed) 23:07
投稿者marron(管理人)
参照先http://www.marronkun.net/
風雲様、はじめまして。
marronです。

自動起動スクリプトで2つのswatchを動作させるということですね?
設定ファイル .swatchrc が同じ物を指定していますので
--------
/usr/bin/swatch -c /root/.swatchrc1 -t /var/log/apache2/ssl_request_log &
/usr/bin/swatch -c /root/.swatchrc2 -t /var/log/auth.log &
--------
として置き換えてはどうでしょうか?

スクリプトの解説ですが風雲様のご指摘通り
> #! /bin/sh
> #
> #chkconfig: 2345 99 01 (2,3,4,5のランレベルで起動。99番目に始まり、01番目に終わる)
> # description: tcpserver (tcpserverで起動?)
この部分ですがtcpserverの自動起動スクリプトを流用していましたのでそのままになっていました。
早速HPの情報は swatch として変更しました。

> stop)
> echo -n "Stopping Swatch: "
> su - root -c killproc tail (受け取った引数を停止。tailである理由はなぞです。)
また、stopの部分でtailをkillしているのは本体のPIDを切断しても
私の環境ではうまく切断されなかったのでtailのプロセスをkillしました。
http://www.marronkun.net/linux/security/swatch_000037.html
ここにも記入あるように正しい停止方法ではないので誰か本当の切断方法を教えてほしいです(^^;

一度おためしください。
今後ともよろしくお願いいたします。

タイトルRe^2: swatchの起動スクリプトについて
記事No339
投稿日: 2005/12/15(Thu) 11:37
投稿者風雲
> 風雲様、はじめまして。
> marronです。
>
marron様、ご返信ありがとうございます。

> 自動起動スクリプトで2つのswatchを動作させるということですね?
> 設定ファイル .swatchrc が同じ物を指定していますので
> --------
> /usr/bin/swatch -c /root/.swatchrc1 -t /var/log/apache2/ssl_request_log &
> /usr/bin/swatch -c /root/.swatchrc2 -t /var/log/auth.log &
> --------
> として置き換えてはどうでしょうか?
>
質問する前にやるべきだったのですが、基本的なことを試そうと思いまして、

$ sudo /etc/init.d/swatch start
を試しますと、/etc/init.d/functionsがないと言われましたので調べますと、どうもdebianにはfunctionsがないようで、色々設定すればいいのかもしれないのですが、まず普通にfunctionsを使わずやってみようと思いまして、

$ sudo vi /etc/init.d/swatch
#! /bin/sh
#
#chkconfig: 2345 99 01
# description: swatch

RETVAL=0

# See how we were called.
case "$1" in
start)
echo -n "Starting Swatch: "
/usr/bin/swatch -c /root/.swatchrc -t /var/log/apache2/ssl_request_log &
RETVAL=$?
;;

stop)
echo -n "Stopping Swatch: "
killall swatch
killall tail
RETVAL=$?
;;

restart)
$0 stop
$0 start
RETVAL=$?
;;

*)
echo "Usage: swatch {start|stop|restart}"
exit 1
esac
exit $RETVAL
とし、/etc/rc3.d/s99swatchも同様にして(結果として、functionsがない、「killproc tail」を「killall swatch」に変更しましたが、うまく起動していないようです。。。)、

$ sudo /etc/init.d/swatch startと、
$ sudo /etc/rc3.d/S99swatch startが動くようになり、

それで大丈夫かと思ったのですが、サーバを再起動してみても、相変わらずswatchは起動していないようです。

こう考えると、/etc/init.d/swatchや/etc/rc3.d/S99swatchの問題ではなく、再起動時にどういった設定がなされているのかの問題のような気もします。。。


> スクリプトの解説ですが風雲様のご指摘通り
> > #! /bin/sh
> > #
> > #chkconfig: 2345 99 01 (2,3,4,5のランレベルで起動。99番目に始まり、01番目に終わる)
> > # description: tcpserver (tcpserverで起動?)
> この部分ですがtcpserverの自動起動スクリプトを流用していましたのでそのままになっていました。
> 早速HPの情報は swatch として変更しました。
>
すいません。ありがとうございます。

> > stop)
> > echo -n "Stopping Swatch: "
> > su - root -c killproc tail (受け取った引数を停止。tailである理由はなぞです。)
> また、stopの部分でtailをkillしているのは本体のPIDを切断しても
> 私の環境ではうまく切断されなかったのでtailのプロセスをkillしました。
> http://www.marronkun.net/linux/security/swatch_000037.html
> ここにも記入あるように正しい停止方法ではないので誰か本当の切断方法を教えてほしいです(^^;
>
わたくしもそうでした。その上、debianだとfunctionsが見当たらず、killprocも現在使えないので、stopでダイレクトにとめられれば一番いいのですが、/etc/init.d/swatch自体がうまく書けていないので、起動スクリプトをちゃんと勉強する必要があると思いました。

> 一度おためしください。
> 今後ともよろしくお願いいたします。
>

色々試さないまま投稿してしまいすいませんでした。
もう少しdebianの情報を集めてみようと思います。

タイトルRe^3: swatchの起動スクリプトについて
記事No341
投稿日: 2005/12/16(Fri) 09:37
投稿者marron(管理人)
参照先http://www.marronkun.net/
風雲様

marronです。
以下の内容ですがサーバ起動時にうまく立ち上がってこないということでしょうか?

redhat系なら /etc/rc.d/rc.*/以下に
-------
chkconfig: 2345 99 99
-------
と定義したようにシンボリックリンクを貼るこまんど
# chkconfig --add xxxx
というのがあるのですがdebianではないのでしょうか?

また、無いのであれば
rc2.d rc3.d rc4.d rc5.d 以下に S99swatch で シンボリックリンク をはり
rc6.d rc0.d 以下に K99swach でシンボリックリンクをはる作業はお済みでしょうか?

以上、ご確認のほどよろしくお願いします。
> > 自動起動スクリプトで2つのswatchを動作させるということですね?
> > 設定ファイル .swatchrc が同じ物を指定していますので
> > --------
> > /usr/bin/swatch -c /root/.swatchrc1 -t /var/log/apache2/ssl_request_log &
> > /usr/bin/swatch -c /root/.swatchrc2 -t /var/log/auth.log &
> > --------
> > として置き換えてはどうでしょうか?
> >
> 質問する前にやるべきだったのですが、基本的なことを試そうと思いまして、
>
> $ sudo /etc/init.d/swatch start
> を試しますと、/etc/init.d/functionsがないと言われましたので調べますと、どうもdebianにはfunctionsがないようで、色々設定すればいいのかもしれないのですが、まず普通にfunctionsを使わずやってみようと思いまして、
>
> $ sudo vi /etc/init.d/swatch
> #! /bin/sh
> #
> #chkconfig: 2345 99 01
> # description: swatch
>
> RETVAL=0
>
> # See how we were called.
> case "$1" in
> start)
> echo -n "Starting Swatch: "
> /usr/bin/swatch -c /root/.swatchrc -t /var/log/apache2/ssl_request_log &
> RETVAL=$?
> ;;
>
> stop)
> echo -n "Stopping Swatch: "
> killall swatch
> killall tail
> RETVAL=$?
> ;;
>
> restart)
> $0 stop
> $0 start
> RETVAL=$?
> ;;
>
> *)
> echo "Usage: swatch {start|stop|restart}"
> exit 1
> esac
> exit $RETVAL
> とし、/etc/rc3.d/s99swatchも同様にして(結果として、functionsがない、「killproc tail」を「killall swatch」に変更しましたが、うまく起動していないようです。。。)、
>
> $ sudo /etc/init.d/swatch startと、
> $ sudo /etc/rc3.d/S99swatch startが動くようになり、
>
> それで大丈夫かと思ったのですが、サーバを再起動してみても、相変わらずswatchは起動していないようです。
>
> こう考えると、/etc/init.d/swatchや/etc/rc3.d/S99swatchの問題ではなく、再起動時にどういった設定がなされているのかの問題のような気もします。。。
>
>
> > スクリプトの解説ですが風雲様のご指摘通り
> > > #! /bin/sh
> > > #
> > > #chkconfig: 2345 99 01 (2,3,4,5のランレベルで起動。99番目に始まり、01番目に終わる)
> > > # description: tcpserver (tcpserverで起動?)
> > この部分ですがtcpserverの自動起動スクリプトを流用していましたのでそのままになっていました。
> > 早速HPの情報は swatch として変更しました。
> >
> すいません。ありがとうございます。
>
> > > stop)
> > > echo -n "Stopping Swatch: "
> > > su - root -c killproc tail (受け取った引数を停止。tailである理由はなぞです。)
> > また、stopの部分でtailをkillしているのは本体のPIDを切断しても
> > 私の環境ではうまく切断されなかったのでtailのプロセスをkillしました。
> > http://www.marronkun.net/linux/security/swatch_000037.html
> > ここにも記入あるように正しい停止方法ではないので誰か本当の切断方法を教えてほしいです(^^;
> >
> わたくしもそうでした。その上、debianだとfunctionsが見当たらず、killprocも現在使えないので、stopでダイレクトにとめられれば一番いいのですが、/etc/init.d/swatch自体がうまく書けていないので、起動スクリプトをちゃんと勉強する必要があると思いました。
>
> > 一度おためしください。
> > 今後ともよろしくお願いいたします。
> >
>
> 色々試さないまま投稿してしまいすいませんでした。
> もう少しdebianの情報を集めてみようと思います。

タイトルRe^4: swatchの起動スクリプトについて
記事No342
投稿日: 2005/12/16(Fri) 14:37
投稿者風雲
参照先http://www.jp-z.jp/linux/swatch.html
marron 様

ご返信有難うございます。結論から言いますと見事に成功しました。

> marronです。
> 以下の内容ですがサーバ起動時にうまく立ち上がってこないということでしょうか?
>
> redhat系なら /etc/rc.d/rc.*/以下に
> -------
> chkconfig: 2345 99 99
> -------
> と定義したようにシンボリックリンクを貼るこまんど
> # chkconfig --add xxxx
> というのがあるのですがdebianではないのでしょうか?
>
debianにはそのパッケージはないようでした。


> また、無いのであれば
> rc2.d rc3.d rc4.d rc5.d 以下に S99swatch で シンボリックリンク をはり
> rc6.d rc0.d 以下に K99swach でシンボリックリンクをはる作業はお済みでしょうか?
>
今回引用しました参考サイトにもあったのですが、ご指摘のように、
# ln -s /var/swatch/swatch.sh .
これを実行したあとに、

# update-rc.d swatch.sh defaults 99

これをしていませんでした。
正確に言うと、
#cd /etc/rc3.d/
#/root/.swatchrc/ ./S99swatch

rc3のみにシンボリックリンクをはるだけしかしていなかったため、できなかったようです。

おかげさまで、わざわざ起動しなくても、メールが送られてくるようになりました。

ご多忙の中、ご丁寧にご返信いただき有難うございました。

またお世話になってしまうかもしれませんが、その際はまたよろしくお願いします。
このたびは、誠に有難うございました。

<<下記省略>>