起動時に.jarファイルを実行する

起動時に.jarファイルを実行する

私はRaspberry PiでNukkit Minecraftサーバーを実行しています(良いハードウェアがないことを知っていますが、努力しています)、Linux用のbashファイルを作成するさまざまな方法を検索していました。 startNukkit.whateverextension ファイルを作成しました。私はこのポイントに達しました:

!#/bin/bash/

gnome-terminal -e "java -jar home/pi/Desktop/Nukkit/nukkit.jar; exec bash\""

しかし、扱いたい内容がたくさんあります。まず、bashファイルをダブルクリックすると、「実行」、「ターミナルで実行」、「開く」、および「キャンセル」というメッセージが表示されます。代わりに、このプロンプトなしですぐに実行したいと思います。

そして、Minecraftサーバーなので、誰が私のサーバーに接続したのかなど、サーバーの結果だけが端末で見ることができます。ただし、「ターミナルで実行」をクリックすると端末が表示され、閉じます。説明したように、「exec bash\」でこの問題を解決できると思います。ここ。ターミナルウィンドウを開いたままにしてください。

最後に、Windowsのスタートアップフォルダと同様に、起動時に実行するようにしたいと思います。そのフォルダ内のすべてのファイルは起動時に実行されます。

答え1

systemdサービスへ

特定のGNU / Linuxディストリビューションについて言及していませんでした。ほとんどの一般的なディストリビューションはシステム化されているようです。)

.jarファイルをアクセス可能な場所に移動すると、/opt起動後に権限の低い他のユーザーとしてサーバーを実行できますsystemdnobody

ホームディレクトリなどにアクセスせずに潜在的に実行することに加えて、失敗後にサービスを再起動し、他の多くのタスクを実行するようにsystemdを設定できます。

望むよりman systemd.service、、、、​man systemd.execman systemd.unitなど。


nukkit.service

[Unit]
Description=Nukkit Server
After=syslog.target
After=network.target

[Service]
Type=simple
User=nobody
Group=nobody
ExecStart=java -jar /opt/Nukkit/nukkit.jar

[Install]
WantedBy=multi-user.target

出力を観察する

あなたが所有して/etc/systemd/system/nukkit.serviceいる場所:

  • systemctl enable nukkit
  • systemctl start nukkit

次に、journalctl -f -u nukkitsystemd nit nukkitのf最新のログメッセージに従う必要があります。uただし、システムが syslog またはその他の機能を使用している可能性があります。この場合、特定のファイルのロギングを設定できます。など

関連情報