インストール時にUbuntuでアプリをデーモンとして実行するにはどうすればよいですか?

smeeb

私はJavaアプリを持っています-Java、Ruby、Pythonなどであるかどうかに関係なく、ここでの答えは同じであるはずです-devopsの人々がそれをインストールしようとすると、自動的に実行されるように配布したいと思いますデーモンとして、彼らの側にゼロ構成があります。これに対する私のインスピレーションは、Goで記述されているDockerデーモンから来ていますが、Ubuntuマシンでは自動的にデーモンとして構成されます。同じことをしたいのですが、どこから始めればいいのかわかりません。

私は次のいずれか想像します:

  • どういうわけか私のアプリをdeb;の中にパッケージ化する必要があります。または
  • 必要に応じて私のアプリの実行可能ファイルを出荷init/ systemd/ upstart/など。エンドユーザーがスクリプトを実行しなくても、何らかの形でローカルにインストールされるスクリプト。ただし、この場合、ユーザーがいくつかのinitようなツールのセットアップのいずれかを持っている可能性があるため、インストールするスクリプトを選択する方法がわかりません

何か案は?

saiarcot895

Ubuntu(およびDebian)では、debすべてを自動化できるため、エンドユーザーの介入が不要なためパッケージを作成するのが最善の方法です。パッケージのインストールまたはアップグレードが自動化されていない唯一のケースは、パッケージにユーザーからの入力が必要な構成オプションがある場合(主にインストール中のみ)、または構成ファイルがユーザーによって変更され、の新しいバージョンによっても変更された場合です。パッケージ(アップグレード中)。さらに、パッケージをインストール/アップグレードした後、パッケージがインストールする起動スクリプトが自動的に開始されます。

You can have multiple init scripts be installed, and have everything still work. In the case of systemd being installed and used on the user's computer, if there is both an init script and a systemd script for the same service, then the init script is ignored and the systemd script is used.

In terms of the packaging itself, Debian provides helper scripts that (among other things) automatically install any startup scripts you provide (I don't think upstart is supported by their helper scripts, since this is only used on Ubuntu) and start the service. For an example of the packaging, see this debian folder for the dump1090-mutability package. (Disclaimer: this is my Github account) Note that the dump1090-mutability.init file contains the init script while the dump1090-mutability.service file contains the systemd script. Note that the names of these files should be package-name.init and package-name.service, where package-name is the name of the binary package being created. (See man dh_systemd_enable and man dh_systemd_start for the systemd case.)

パッケージ化時に、これらのファイルは両方ともユーザーのシステムの適切なディレクトリに配置され、サービスが開始されます。rulesファイルについては、自動化の恩恵を受けるために、次のようなものを用意することをお勧めします(この--with systemd部分についてはこれ参照してください)。

#!/usr/bin/make -f
%:
        dh $@ --with systemd

override_dh_auto_build:
        # Specify how to build the Java files here, if there is no Makefile provided

override_dh_auto_install:
        # Specify how to install the Java files here, if there is no `install` target in the Makefile. Don't worry about anything in the `debian` directory unless you need to install some icons.
  • アプリにMakefileがなく、Javaソースファイルのコレクションにすぎない場合は、override_dh_auto_build(ソースファイルがコンパイルされてJARにパッケージ化されるoverride_dh_auto_install場所)と(JARがインストールされる場所)に入力します。
  • アプリにMakefileがあり、installターゲットがない場合は、ターゲットを削除して入力override_dh_auto_buildoverride_dh_auto_installます。
  • アプリにMakefileがあり、installターゲット(使用可能)がある場合は、両方のターゲットを削除します。
  • アプリが単なるJARファイルの場合は、を削除override_dh_auto_buildして入力しoverride_dh_auto_installます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

インストール時にUbuntuでアプリをデーモンとして実行するにはどうすればよいですか?

分類Dev

Redhatでシェルスクリプトをデーモンとして実行するにはどうすればよいですか?

分類Dev

Ubuntu 14.04にionic-labをインストールしてアプリを実行するにはどうすればよいですか?

分類Dev

Ubuntu Baseイメージを実行しているAndroidデバイスにUbuntuアプリ(Foliate電子書籍リーダーなど)をインストールするにはどうすればよいですか?

分類Dev

LinuxでシステムデーモンとしてPerlスクリプトを実行するにはどうすればよいですか?

分類Dev

常時実行しているアプリケーションをAzureService Fabricにデプロイするにはどうすればよいですか?

分類Dev

DEの起動時に実行されるようにbashスクリプトをインストールするタスクを(インストーラースクリプトを介して)作成するにはどうすればよいですか?

分類Dev

ソースからアプリケーションをインストールする最後のステップでmakeをrootとして実行しないようにするにはどうすればよいですか?

分類Dev

オフライン時にローカルのmongodbデータベースを使用し、オンライン時にリモートのmongodbサーバーに同期するmeteorアプリを処理するにはどうすればよいですか?

分類Dev

同じUbuntuインストールで別のユーザーとしてSSHを実行するにはどうすればよいですか?

分類Dev

同じUbuntuインストールで別のユーザーとしてSSHを実行するにはどうすればよいですか?

分類Dev

同じUbuntuインストールで別のユーザーとしてSSHを実行するにはどうすればよいですか?

分類Dev

Arango-CMSデモアプリをインストールして使用するにはどうすればよいですか?

分類Dev

シェルスクリプトでエイリアスとしてパラメータを実行するにはどうすればよいですか?

分類Dev

インポート時にPythonがスクリプトを実行しないようにするにはどうすればよいですか?

分類Dev

`fc-cache -f`を実行せずに、手動でインストールしたフォントをすべてのアプリケーションからアクセスできるようにするにはどうすればよいですか?

分類Dev

SSHを介してリモートホストで実行されている「forループ」にインデックスを出力するにはどうすればよいですか?

分類Dev

デュアルブートとしてMacBookProにUbuntuをインストールするにはどうすればよいですか?

分類Dev

デュアルブートとしてMacBookProにUbuntuをインストールするにはどうすればよいですか?

分類Dev

デュアルブートとしてMacBookProにUbuntuをインストールするにはどうすればよいですか?

分類Dev

「プラグインのルートディレクトリでコマンドを実行してPHPクライアントをインストールするには」どうすればよいですか?

分類Dev

RaspbianにAPIをインストールした後、Pythonスクリプトを編集して実行するにはどうすればよいですか?

分類Dev

親モジュールをすでにインストールしているときに実行可能ファイルが実行されないようにする、不足しているユーティリティモジュールを解決するにはどうすればよいですか?

分類Dev

Spring-Bootをクライアントアプリケーションとして実行するにはどうすればよいですか?

分類Dev

毎日のファイルをインポートしてデータブリックスで実行するにはどうすればよいですか?

分類Dev

ドメインに参加しているときにGetWindows10アプリをインストールするにはどうすればよいですか

分類Dev

UbuntuとWindows10をデュアルブートとしてインストールするにはどうすればよいですか?

分類Dev

実行時にnixによってインストールされたライブラリを使用するにはどうすればよいですか?

分類Dev

ElectronアプリをWindowsの実行可能ファイルまたはインストール可能ファイルとしてデプロイするにはどうすればよいですか?

Related 関連記事

  1. 1

    インストール時にUbuntuでアプリをデーモンとして実行するにはどうすればよいですか?

  2. 2

    Redhatでシェルスクリプトをデーモンとして実行するにはどうすればよいですか?

  3. 3

    Ubuntu 14.04にionic-labをインストールしてアプリを実行するにはどうすればよいですか?

  4. 4

    Ubuntu Baseイメージを実行しているAndroidデバイスにUbuntuアプリ(Foliate電子書籍リーダーなど)をインストールするにはどうすればよいですか?

  5. 5

    LinuxでシステムデーモンとしてPerlスクリプトを実行するにはどうすればよいですか?

  6. 6

    常時実行しているアプリケーションをAzureService Fabricにデプロイするにはどうすればよいですか?

  7. 7

    DEの起動時に実行されるようにbashスクリプトをインストールするタスクを(インストーラースクリプトを介して)作成するにはどうすればよいですか?

  8. 8

    ソースからアプリケーションをインストールする最後のステップでmakeをrootとして実行しないようにするにはどうすればよいですか?

  9. 9

    オフライン時にローカルのmongodbデータベースを使用し、オンライン時にリモートのmongodbサーバーに同期するmeteorアプリを処理するにはどうすればよいですか?

  10. 10

    同じUbuntuインストールで別のユーザーとしてSSHを実行するにはどうすればよいですか?

  11. 11

    同じUbuntuインストールで別のユーザーとしてSSHを実行するにはどうすればよいですか?

  12. 12

    同じUbuntuインストールで別のユーザーとしてSSHを実行するにはどうすればよいですか?

  13. 13

    Arango-CMSデモアプリをインストールして使用するにはどうすればよいですか?

  14. 14

    シェルスクリプトでエイリアスとしてパラメータを実行するにはどうすればよいですか?

  15. 15

    インポート時にPythonがスクリプトを実行しないようにするにはどうすればよいですか?

  16. 16

    `fc-cache -f`を実行せずに、手動でインストールしたフォントをすべてのアプリケーションからアクセスできるようにするにはどうすればよいですか?

  17. 17

    SSHを介してリモートホストで実行されている「forループ」にインデックスを出力するにはどうすればよいですか?

  18. 18

    デュアルブートとしてMacBookProにUbuntuをインストールするにはどうすればよいですか?

  19. 19

    デュアルブートとしてMacBookProにUbuntuをインストールするにはどうすればよいですか?

  20. 20

    デュアルブートとしてMacBookProにUbuntuをインストールするにはどうすればよいですか?

  21. 21

    「プラグインのルートディレクトリでコマンドを実行してPHPクライアントをインストールするには」どうすればよいですか?

  22. 22

    RaspbianにAPIをインストールした後、Pythonスクリプトを編集して実行するにはどうすればよいですか?

  23. 23

    親モジュールをすでにインストールしているときに実行可能ファイルが実行されないようにする、不足しているユーティリティモジュールを解決するにはどうすればよいですか?

  24. 24

    Spring-Bootをクライアントアプリケーションとして実行するにはどうすればよいですか?

  25. 25

    毎日のファイルをインポートしてデータブリックスで実行するにはどうすればよいですか?

  26. 26

    ドメインに参加しているときにGetWindows10アプリをインストールするにはどうすればよいですか

  27. 27

    UbuntuとWindows10をデュアルブートとしてインストールするにはどうすればよいですか?

  28. 28

    実行時にnixによってインストールされたライブラリを使用するにはどうすればよいですか?

  29. 29

    ElectronアプリをWindowsの実行可能ファイルまたはインストール可能ファイルとしてデプロイするにはどうすればよいですか?

ホットタグ

アーカイブ