手動で正常に実行するスクリプトを作成しましたが、 ブート時にスクリプトファイルを開始する方法 の説明で実行できません。 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 list
とbukkit stop/waiting
にあります(bukkitはMinecraftサーバーソフトウェアだと思っている人のために)
そう。 .confを使用して起動サービスにし、何もしなくても(ログオン前に自動的に)スクリプトを実行したいと考えています。実行する実際のjarファイルがホームフォルダーにあることに問題はありますか?ホームフォルダが暗号化されているかどうかはよく覚えていませんが、暗号化されている可能性があります。これは問題でしょうか?シンボリックリンクか何かを使用する必要がありますか(シンボリックリンクがほとんどショートカットのような場合ですが、そうではありませんか?)
ここで何が欠けていますか?
Ps:update-rc.dを削除して、画面のスタートアップを削除しました。
デーモンモードがあることをscreen
覚えていません。次の画面行を変更します。
screen -dmS minecraft.start /home/phirephoenix/minecraft/bukkitserver/start_server.sh
新しいパラメータ-dmS
「デーモンとして開始:デタッチモードでの画面セッション」。これは、-d
-m
とすでに使用している-S
の組み合わせです。