次のコマンドを使用してサービス (httpd) を起動します。
/etc/init.d/'name of service' start
上記の httpd サービスにサービス キーワードが設定されていない場合、以下のコマンドを使用してサービスを開始するにはどうすればよいですか?
2)サービス 'nameofservice' の開始 例: service httpd start
/etc/init.d/nameofservice の代わりに、サービス キーワード、つまり「service 'nameofservice' start」(オプション 2 のようなサービス キーワード) を使用して開始および停止できるサービスを構成するにはどうすればよいですか?
答え1
service(8)コマンドは/etc/init.d内のスクリプトを探します。そのようなスクリプトが存在しない場合は、自分で書く必要があるかもしれません。ウェブ上では、それを助けるガイド。
答え2
以下のスクリプトは Centos 5 でテストされています。現在の日付と時刻を印刷し、出力をログ ファイルに送り、timed という名前で保存するスクリプトを作成します。
vim /opt/timed
#!/bin/bash
while true;do
echo `date` >> /tmp/timed.log
done #script finish here below line enable execute permission of script
chmod +x /opt/timed
ここで、時間指定スクリプトを開始および停止する System V スクリプトを作成します。
vim /etc/init.d/time (save the script only in /etc/init.d directory only with the name of your choice we use name time here)
#!/bin/bash
# chkconfig: 345 80 20
# description: startup script for /opt/timed daemon
start() {
nohup /opt/timed &
}
stop() {
pkill timed
}
case "$1" in
start)
start #calling the start () function
;;
stop)
stop # calling the stop() function
;;
*)
echo "Usage: $0 {start|stop}"
RETVAL=1 #we return the value 1 bcz cmd is not sucessfull
esac
exit 0
chmod +x /etc/init.d/time (enabling the execute permission of script)
service time start (it will start the script timed)
ps –ef | grep timed (we can check that script is running with this command)
スクリプトの説明
時間スクリプトはディレクトリ内になければなりません/etc/init.d
。chkconfig: 345 80 20
スクリプトの必須コンポーネント 345 は、3、4、5 のランレベルを表します。20 は、開始コマンドが /etc/rc3/ ディレクトリで番号 20 (S20) を持つことを意味します。80 は、停止コマンドが /etc/rc3/ ディレクトリで番号 80 (k80) を持つことを意味します。
start()
および はstop()
デーモンを起動および停止するための関数です。Unix ジョブをバックグラウンドで実行し (&、bg コマンドを使用)、セッションからログアウトすると、プロセスが強制終了されます。これを回避するには、ジョブを nohup で実行するか、at、batch、または cron コマンドを使用してバッチ ジョブにします。PKill コマンドを使用すると、名前を指定するだけでプログラムを強制終了できます。$1 は最初の引数を取ります。$0 はスクリプトの名前を意味します。RETVAL は、スクリプトの終了ステータスのような環境変数で、0 の場合はスクリプトが正常に実行され、1 の場合はスクリプトが正常に実行されなかったことを意味します。start または stop 以外のコマンドを指定すると、使用方法メッセージが表示されます。