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

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

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

答え1

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

[Unit]
Description=miner

[Service]
ExecStart=/path/to/miner

[Install]
WantedBy=multi-user.target

サービスを閉じたり再読み込みしたりするために使用される特定の引数がある場合は、オプションをExecStop=追加できます。ExecReload=

その後は、systemctl enable miner.service起動するたびに起動するようにするだけです。

関連情報:

答え2

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

CentOS では以下を確認できます:

# chkconfig --list 

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

# chkconfig postgresql on

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

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

それを/etc/init.d/に入れてchmod +xで変更します

マイナーアプリケーションをサービスとして管理し、それに伴うすべての利点を享受できるはずです。

答え3

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

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

編集: 言い忘れましたが、これはルートとして実行されます。そのため、非ルートユーザーとして実行する必要がある場合は、代わりにsu - username -c /path/to/miner

関連情報