Linuxのバックグラウンドプロセス

user861973:

私は正常に動作しているJavaソケットサーバー接続を開発しました。

端末から開始すると、クライアントからのリスニングから開始されます。しかし、ターミナルを閉じると、リスニングが停止します。

jarファイルが開始された場所からユーザーが端末を閉じた場合でも、続行する必要があります。

LinuxでJavaサーバーソケットアプリケーションをバックグラウンドプロセスとして実行するにはどうすればよいですか?

ŁukaszRżanek:

このようなことを実現するには、いくつかの方法があります。

  1. nohup java -server myApplication.jar > /log.txt-これはかなり簡単です。アプリケーションをバックグラウンドに置くだけです。これは機能しますが、それを行うにはあまり良い方法ではありません。
  2. シェルラッパーと上記のOR デーモンアプリを使用します。このアプローチは、多くのオープンソースプロジェクトで使用されており、ほとんどのシナリオに非常に適しています。さらにinit.d、定期的な起動、停止、ステータスコマンドを使用して、必要な実行レベルに含めることができます。必要に応じて例を提供できます。
  3. Java Service WrapperまたはApache Jakarta Commons Daemonを使用して、独自のデーモンサーバーを構築します繰り返しますが、どちらも非常に人気があり、十分にテストされ、信頼性があります。LinuxとWindowsの両方で利用可能です!Apache CommonsのものはTomcatサーバーで使用されます!さらに、悪魔があります。

個人的に私は将来このサーバーを使用する必要がある場合、および/またはクライアント、エンドユーザーなどに配布する必要がある場合はソリューション2または3を使用します。nohup何かを実行する必要があり、より複雑なソリューションを開発する時間がない場合に適しています問題。

広告2:

多くのプロジェクトで使用されている最適なスクリプトは、こちらにあります

Debian / Ubuntuの場合、に基づく非常に単純なスクリプトを使用できますstart-stop-daemon疑わしい場合は/etc/init.d/skeleton変更できます。

#!/bin/sh

DESC="Description"
NAME=YOUR_NAME
PIDFILE=/var/run/$NAME.pid
RUN_AS=USER_TO_RUN
COMMAND=/usr/bin/java -- -jar YOUR_JAR

d_start() {
    start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --chuid $RUN_AS --exec $COMMAND
}

d_stop() {
    start-stop-daemon --stop --quiet --pidfile $PIDFILE
    if [ -e $PIDFILE ]
        then rm $PIDFILE
    fi
}

case $1 in
    start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
    ;;
    stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
    ;;
    restart)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    sleep 1
    d_start
    echo "."
    ;;
    *)
    echo "usage: $NAME {start|stop|restart}"
    exit 1
    ;;
esac

exit 0

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

バックグラウンドでのLinuxプロセス-ジョブで「停止」?

分類Dev

Javaのバックグラウンドプロセス

分類Dev

バックグラウンドでの同期プロセス

分類Dev

バックグラウンドプロセスの制御

分類Dev

Elixirのバックグラウンドプロセス

分類Dev

ウィンドウなしのバックグラウンドプロセス

分類Dev

Linuxプロセスをバックグラウンドで開始する

分類Dev

Linuxでバックグラウンドでプロセスを実行する

分類Dev

PHPスリープ関数のバックグラウンドプロセス

分類Dev

Linux環境でのバックグラウンドプロセスの優先順位は何ですか

分類Dev

Linuxプロセスをバックグラウンドに戻す-再ログイン-プロセスをフォアグラウンドに戻す方法は?

分類Dev

時間ベースの操作のバックグラウンドプロセス

分類Dev

バックグラウンド プロセスのシグナル処理

分類Dev

バックグラウンドに置いた後、Linuxで実行中のプロセスに戻します

分類Dev

バックグラウンドプロセスのObjectiveCコード

分類Dev

イベント駆動型のバックグラウンド「プロセス」

分類Dev

golang execバックグラウンドプロセスとそのpidの取得

分類Dev

HHVMでのバックグラウンドプロセスの作成

分類Dev

SpringMVCバックグラウンドプロセス

分類Dev

SpringMVCバックグラウンドプロセス

分類Dev

Androidとバックグラウンドプロセス

分類Dev

自動バックグラウンドプロセス

分類Dev

PHPとバックグラウンドプロセス

分類Dev

PIDバックグラウンドプロセス

分類Dev

AngularJS:バックグラウンドプロセス

分類Dev

古いXAMPPバックグラウンドプロセスの停止

分類Dev

古いXAMPPバックグラウンドプロセスの停止

分類Dev

Androidのバックグラウンドプロセスタイマー

分類Dev

rxjavaバックグラウンドプロセスとUIの中間的な更新

Related 関連記事

  1. 1

    バックグラウンドでのLinuxプロセス-ジョブで「停止」?

  2. 2

    Javaのバックグラウンドプロセス

  3. 3

    バックグラウンドでの同期プロセス

  4. 4

    バックグラウンドプロセスの制御

  5. 5

    Elixirのバックグラウンドプロセス

  6. 6

    ウィンドウなしのバックグラウンドプロセス

  7. 7

    Linuxプロセスをバックグラウンドで開始する

  8. 8

    Linuxでバックグラウンドでプロセスを実行する

  9. 9

    PHPスリープ関数のバックグラウンドプロセス

  10. 10

    Linux環境でのバックグラウンドプロセスの優先順位は何ですか

  11. 11

    Linuxプロセスをバックグラウンドに戻す-再ログイン-プロセスをフォアグラウンドに戻す方法は?

  12. 12

    時間ベースの操作のバックグラウンドプロセス

  13. 13

    バックグラウンド プロセスのシグナル処理

  14. 14

    バックグラウンドに置いた後、Linuxで実行中のプロセスに戻します

  15. 15

    バックグラウンドプロセスのObjectiveCコード

  16. 16

    イベント駆動型のバックグラウンド「プロセス」

  17. 17

    golang execバックグラウンドプロセスとそのpidの取得

  18. 18

    HHVMでのバックグラウンドプロセスの作成

  19. 19

    SpringMVCバックグラウンドプロセス

  20. 20

    SpringMVCバックグラウンドプロセス

  21. 21

    Androidとバックグラウンドプロセス

  22. 22

    自動バックグラウンドプロセス

  23. 23

    PHPとバックグラウンドプロセス

  24. 24

    PIDバックグラウンドプロセス

  25. 25

    AngularJS:バックグラウンドプロセス

  26. 26

    古いXAMPPバックグラウンドプロセスの停止

  27. 27

    古いXAMPPバックグラウンドプロセスの停止

  28. 28

    Androidのバックグラウンドプロセスタイマー

  29. 29

    rxjavaバックグラウンドプロセスとUIの中間的な更新

ホットタグ

アーカイブ