web-dev-qa-db-ja.com

CentOSで起動時に開始するサービスを作成するにはどうすればよいですか?

CentOSボックスを起動すると、httpdサービスが自動的に開始されます。同じことをするカスタムサービスを作成するにはどうすればよいですか?マイニングに使用するプログラムがあります。マシンを起動するたびに./minerを実行する必要はありません。

7
Rei

CentOS 7.xを使用しているため、ユニットを作成します。 vim /usr/lib/systemd/system/miner.service as rootとして、次の内容を入力します。

[Unit]
Description=miner

[Service]
ExecStart=/path/to/miner

[Install]
WantedBy=multi-user.target

ExecStop=およびExecReload=オプションは、サービスのクローズまたはリロードに使用される特定の引数がある場合。

その後は、systemctl enable miner.service起動ごとに開始します。

関連スタッフ:

12
user34720

マイナープログラムプロバイダーによっては、関連するサービスが既に宣言されている場合があります。

CentOSでは、次のことを確認できます。

# chkconfig --list 

プログラムが表示された場合は、システムに起動時に自動的に実行するように指示できます

# chkconfig postgresql on

結果が見つからない場合は、たとえばテンプレートを使用して独自のダミースクリプトを作成できます。

デーモンのように起動および停止できるようにシェルスクリプトのサービスを作成するにはどうすればよいですか?

それを/etc/init.d/に入れ、chmod + xして

マイナーアプリケーションを、それに付随するすべての利点を備えたサービスとして管理できるはずです。

1
M4rty

起動時にコマンドを実行するだけの場合は、実際のサービスを作成する必要はありません。最も簡単な方法は、. /path/to/minerを/etc/rc.d/rc.localにドロップすることです。このファイルは、起動ごとに実行されるスクリプトであり(rc.localが実行可能であることを確認してください)、サーバーの起動時にコマンドが実行されます。

ただし、実際にサービスとして処理する必要がある場合、CentOS 7または5/6のどち​​らを使用しているかによって、最適な方法は異なります。

編集:言及するのを忘れた、これはrootとして実行されるため、root以外のユーザーとして実行する必要がある場合は、代わりにsu - username -c /path/to/minerを使用してください。

1
Kefka