web-dev-qa-db-ja.com

Minecraftサーバーのデーモンとして画面を開始する

手動で正常に実行するスクリプトを作成しましたが、 ブート時にスクリプトファイルを開始する方法 の説明で実行できません。 update-rc.d -f minecraft.start defaultsを実行しました

これが私の/etc/init.d/minecraft.startのようなものです

#!/bin/bash
case "$1" in
  start)
    screen -S minecraft.start /home/phirephoenix/minecraft/bukkitserver/start_server.sh
    echo "Server started on screen minecraft"
    ;;
  stop)
    screen -X -S minecraft.start kill
    echo "Server shutting down"
    ;;
  *)
    echo "Usage: /etc/init.d/minecraft.start {start|stop}"
    exit 1
    ;;

esac

exit 0
~

スクリプトは機能するので、デフォルトなので追加しません。

そしてこれは私のスタートアップログです/var/log/boot.log

Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
fsck from util-linux 2.20.1
/dev/sda1: clean, 66452/4325376 files, 1205648/17301248 blocks
 * Starting configure network device [ OK ]
 * Starting Mount network filesystems [ OK ]
 * Starting Failsafe Boot Delay [ OK ]
 * Stopping Mount network filesystems [ OK ]
 * Starting Bridge socket events into upstart [ OK ]
 * Starting SMB/CIFS File Server [ OK ]
 * Starting configure network device [ OK ]
 * Stopping OpenSSH server [ OK ]
 * Starting OpenSSH server [ OK ]
 * Starting NetBIOS name server [ OK ]
 * Starting Mount network filesystems [ OK ]
 * Stopping Failsafe Boot Delay [ OK ]
 * Starting configure network device [ OK ]
 * Starting System V initialisation compatibility [ OK ]
 * Stopping Mount network filesystems [ OK ]
 * Starting SMB/CIFS File and Active Directory Server [ OK ]
 * Stopping cold plug devices [ OK ]
 * Stopping log initial device creation [ OK ]
 * Starting enable remaining boot-time encrypted block devices [ OK ]
 * Starting configure network device security [ OK ]
 * Starting configure virtual network devices [ OK ]
 * Stopping configure virtual network devices [ OK ]
 * Starting save udev log and update rules [ OK ]
 * Stopping save udev log and update rules [ OK ]
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
 * Starting AppArmor profiles [ OK ]
 * Stopping System V initialisation compatibility [ OK ]
 * Starting System V runlevel compatibility [ OK ]
 * Starting ACPI daemon [ OK ]
 * Starting save kernel messages [ OK ]
 * Starting automatic crash report generation [ OK ]
 * Starting regular background program processing daemon [ OK ]
 * Starting deferred execution scheduler [ OK ]
 * Stopping save kernel messages [ OK ]
 * Starting CPU interrupts balancing daemon [ OK ]
 * Starting crash report submission daemon [ OK ]
 * Starting domain name service... bind9 [ OK ]

**<BIG BLANK AREA RIGHT HERE, DON'T GET IT>**

**[screen is terminating]**
**Server started on screen minecraft**
Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 * Starting web server Apache2 [ OK ]
 * Stopping System V runlevel compatibility [ OK ]

開始時にエコーを実行しますが、画面が終了することも示します。

ここでこの問題の原因は何ですか? Ubuntu Serverを実行していますが、screenがインストールされて機能しているようです。

つまり、upstart機能(または私がそれと呼ぶべきもの)を使用した新しいアプローチです。少しグーゲル化した後、ランタイムレベルのことを理解しました。これで、停止/再起動などで設定または停止した4つのランタイムレベルのいずれかで開始する必要があります。

made /etc/init/bukkit.confウォーロックが作成したものとよく似ています 。 #はすべてここにコメントするために追加されており、実際のスクリプトにはありません。

description     "Bukktiserver"
author          "[email protected]"

start on runlevel [2345]
stop on runlevel [016]

pre-start script
    echo " * Bukkitserver started"
    # I don't know if this does anything at all
end script

    exec Sudo /home/phirephoenix/minecraft/bukkitserver/start_server.sh
    # Had to Sudo, or else it would get permission denied. Any ideas?

これで、Sudo start bukkitと入力してサーバーを起動できますが、それでも自動的には実行されません。 bukkitは私のinitctl listbukkit stop/waitingにあります(bukkitはMinecraftサーバーソフトウェアだと思っている人のために)

そう。 .confを使用して起動サービスにし、何もしなくても(ログオン前に自動的に)スクリプトを実行したいと考えています。実行する実際のjarファイルがホームフォルダーにあることに問題はありますか?ホームフォルダが暗号化されているかどうかはよく覚えていませんが、暗号化されている可能性があります。これは問題でしょうか?シンボリックリンクか何かを使用する必要がありますか(シンボリックリンクがほとんどショートカットのような場合ですが、そうではありませんか?)

ここで何が欠けていますか?

Ps:update-rc.dを削除して、画面のスタートアップを削除しました。

4
PhirePhoenix

デーモンモードがあることをscreen覚えていません。次の画面行を変更します。

screen -dmS minecraft.start /home/phirephoenix/minecraft/bukkitserver/start_server.sh

新しいパラメータ-dmS「デーモンとして開始:デタッチモードでの画面セッション」。これは、-d-mとすでに使用している-Sの組み合わせです。

3
Braiam