- PR -

suseの場合、daemonは、どのパッケージにあるのか?

1
投稿者投稿内容
シュワンツ
ベテラン
会議室デビュー日: 2002/08/27
投稿数: 56
投稿日時: 2004-08-12 15:55
suse 8.1にて httpd起動スクリプトにてエラーがでて困っています

【環境】
suse 8.1
apache 1.3.22


【症状】
/etc/init.d/httpd startにて起動すると以下のエラーが発生する

/etc/init.d/httpd: line 13: /etc/rc.d/init.d/functions: そのようなファイルやディレクトリはありません
Starting httpd: /etc/init.d/httpd: line 31: daemon: command not found

【困っている事】
/etc/rc.d/init.d/functionsが無いので、daemonがエラーだと思われます
※redhat8では動作しています

suseでは、/etc/rc.d/init.d/functionsは、何のパッケージにあるのでしょうか?


【該当スクリプト】

#!/bin/bash
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/httpd.conf

# Source function library.
. /etc/rc.d/init.d/functions <------------------13行目

if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi

# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=/usr/local/apache/bin/httpd
prog=httpd
RETVAL=0

start() {
echo -n $"Starting $prog: "
daemon $httpd $OPTIONS <------31行目




なにかヒントがあればよろしくお願いします



[ メッセージ編集済み 編集者: シュワンツ 編集日時 2004-08-13 09:02 ]
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-08-13 22:37
こんばんわ.

hint などではないのですが気になったので.
お使いの apache は suse のものを導入されていますでしょうか?
redhat なら知ってますが,suse では daemon command はないのでしょうか?

line 13 はそれほど問題ではないでしょうけど,
line 31 は「daemon command が見つからない」という話で,
それぞれ別の問題だと思われます.

手で直してしまってよいなら,
普通に「httpd を起動する command」が並んでいればよいと思います.
或いは
$apachectl start
なんてのでも起動すると思いますが,
そもそも「なぜ daemon command が見つからないのか?」を解決しないと,
apache を update する度に手直ししないとならなくなるかもしれません.

もう一点気になりますが,
httpd=/usr/local/apache/bin/httpd
はシュワンツ様が書かれた内容でしょうか?
とすると,もしかして source から導入されているとか?
そういった「どのように導入したか?」といった情報も結構重要だったりします.

以上,ご参考までに.
うっちー
常連さん
会議室デビュー日: 2004/08/12
投稿数: 32
投稿日時: 2004-08-13 23:35
こんばんわ。

シュワンツさんの書かれた起動スクリプトは
redhat8(?)からコピーされたものですか?

もしそうなら、
daemon とは /etc/rc.d/init.d/functions
で定義された function 名と思われます。

パッケージを探すよりも
/etc/rc.d/init.d/functions はシェルスクリプトなので、
redhat と同じように daemon という function を
定義するのが早いのではないでしょうか?
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2004-08-14 08:08
恐らく、/etc/rc.d/init.d/functions ファイルを作成し、その中で daemon 関数を定義すれば動作するような気がしますが、せっかく SUSE を使うのですから、SUSE の 他の rc スクリプトに習って Apache 用の rc スクリプトを再作成するのが良いように思います。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-08-15 21:35
こんばんわ.

大変失礼しました,どっちも重要な errorlog みたいですね.
ちょっと手元の beta な環境で調べてみました.
SuSE だと startproc 〜 と書かれてますね.
で,皆さんのご指摘どおり,functions は無いみたいですし,参照してもいません.
ちなみに,redhat に suse の apache を展開して動かそうと思ったら,
"shard libraries" が見つからないって怒られます.
さらに,suse 8.1 だと apache は 1.2.26 か 2.0.40 のようです.

source から導入されたのでしたら,普通に apachectl から起動しても宜しいのでは?
その command line を /etc/rc.local あたりに書き込んでおけば
OS 起動時に httpd も load してくれるでしょうし,
稼動時に httpd を操作したいなら apachectl で動かせばよいと思うです.

或いはいっそのこと,
suse の rpm packeage から /etc/init.d/apache を抜き取るとか...

以上,ご参考までに.
1

スキルアップ/キャリアアップ(JOB@IT)