「/etc/init.d/nameofservice start」の代わりに「service」コマンドを使用してサービスを開始および停止するにはどうすればよいですか?

「/etc/init.d/nameofservice start」の代わりに「service」コマンドを使用してサービスを開始および停止するにはどうすればよいですか?

次のコマンドを使用してサービス (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.dchkconfig: 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 以外のコマンドを指定すると、使用方法メッセージが表示されます。

関連情報