起動時にルートプロセスを開始しますか?

起動時にルートプロセスを開始しますか?

Linux インストールの起動時に、バックグラウンド プロセスを root として開始したいのですが、ディレクトリまたは構成ファイルに追加するだけでよいのでしょうか?

答え1

基本的には 2 つのオプションがあります。

  1. 時間指定cronのあるジョブを使用する(詳細はマニュアルページを参照)@rebootcrontab(1)

  2. init システムによって起動します。BSD/SysV init スタイルの場合、これは、目的のランレベルで実行されるスクリプトをどこかに追加することを意味します。systemd の場合、これはユニット ファイルを作成し、目的のターゲットによってそれを要求することを意味します。

最初のソリューションは、1 台または 2 台のマシンにローカルなものに適しています (これらは設定に関するものが多いため)。2 番目のソリューションは、より多くのシステムで実行される可能性のあるサービス/デーモンのようなものに適しています。また、メンテナンスを容易にするために実際にパッケージ化する必要があります。

答え2

起動時にプロセスをルートとして実行する最も簡単な方法は、から開始することです/etc/rc.local。そのファイルを編集して、次のような行を追加します。

/path/to/my/daemon &

しかし、これはデーモンを起動するあまり良い方法ではありません。デーモンを制御する便利な方法がありません (実行中かどうかの確認、停止、再起動など)。

デーモンを制御するフレームワークはいくつかあります。これらは init システムと結びついており、Sysvinit、Upstart、Systemd はそれぞれ独自の方法を持っています。システムに何がインストールされているかを確認してください (Unix の種類によって異なり、Linux の場合はディストリビューションと管理者の選択によって異なります)。

関連情報