別のサービスを開始した後、起動時に特定のユーザーでプログラムを起動するにはどうすればよいですか?

別のサービスを開始した後、起動時に特定のユーザーでプログラムを起動するにはどうすればよいですか?

Oracle Enterprise Linux 7では、次のことを行うアプリケーションがあります。

  • 起動時にこのアプリケーションを実行する後ろに他のいくつかのアプリケーションが起動しました(そのうちの1つはMongoDBです)。
  • 特定のユーザーが必要な特定の権限セットでカスタマイズされているので、このアプリケーションを特定のユーザーと共に実行したいと思います。
  • アプリケーションはポート80と443で実行する必要があります。上記のユーザーはこれらのポートを使用できるようにカスタマイズできますsudo(方法はわかりません)。
  • アプリケーションの標準出力と標準エラーストリームはファイルにリダイレクトする必要があります。

私が考えるのは簡単だと思うことを達成するために7つのマニュアルを読むことなくこれを行うことができますか?

答え1

通常、これはinit、upstart、またはsystemdの操作です。ほとんどの場合、/etc/rc.localなど、この操作のスクリプトはすでにあります。ほとんどすべてのデーモンには、安全な起動を保証するために承認されたスクリプトが付属しています。

Quick 'n Dirtyソリューション:プログラムを起動するシェルスクリプトを作成します。ユーザー、権限、およびその他の前提条件への依存関係を解決するか、数分待つ必要があります。 crontab -eを使用してスクリプトを入力してください。

@reboot sleep 120 && /full/path/to/script >& /var/log/mydaemon.log

システムサービスを見てください!

関連情報