回答:
あなたはこれを試すことができます:
#!/bin/sh
nohup java -jar /web/server.jar &
&記号は、プログラムをバックグラウンドで実行するように切り替えます。
nohupユーティリティは、ログアウトした後でも、引数として渡されたコマンドをバックグラウンドで実行します。
nohup
は、常にstdoutとstderrを明示的にリダイレクトすることと組み合わせる必要があります。そうしないと、ログの保存場所を制御できず、nohup.out
このスクリプトが呼び出されたディレクトリに醜いものが作成されてしまいます。
現在、ほとんどのディストリビューションで実行されているSystemd
自分のユーザー定義サービスを見つけました /usr/lib/systemd/system/
お気に入りのテキストエディターという名前のテキストファイルを作成します。 whatever_you_want.service
次のテンプレートをファイルに入れ
ますwhatever_you_want.service
[Unit]
Description=webserver Daemon
[Service]
ExecStart=/usr/bin/java -jar /web/server.jar
User=user
[Install]
WantedBy=multi-user.target
スーパーユーザーとしてサービスを実行する
$ systemctl start whatever_you_want.service # starts the service
$ systemctl enable whatever_you_want.service # auto starts the service
$ systemctl disable whatever_you_want.service # stops autostart
$ systemctl stop whatever_you_want.service # stops the service
$ systemctl restart whatever_you_want.service # restarts the service
Ubuntuを使用していて、 "Upstart"(http://upstart.ubuntu.com/)がある場合、これを試すことができます。
作成する /var/init/yourservice.conf
次の内容で
description "Your Java Service"
author "You"
start on runlevel [3]
stop on shutdown
expect fork
script
cd /web
java -jar server.jar >/var/log/yourservice.log 2>&1
emit yourservice_running
end script
これで、service yourservice start
およびservice yourservice stop
コマンドを発行できます。あなたは/var/log/yourservice.log
それが機能していることを確認するために尾を引くことができます。
コンソールウィンドウを占有することなく、コンソールからjarを実行したいだけの場合は、次のようにします。
java -jar /web/server.jar > /var/log/yourservice.log 2>&1
java -jar /web/server.jar > /var/log/yourservice.log 2>&1 &