On 03/06/11 09:31, Florian Philipp wrote:
> Am 05.03.2011 23:47, schrieb Jake Moe:
>> I'm currently trying to write a simple initscript to run
>> minecraft-server on one of my boxes.  I've looked at the ebuild provided
>> via java-overlay, but it turns out it uses baselayout 2, and I'm not
>> ready to go down that upgrade path on this particular box just yet.
>>
>> So far, I've managed to get a simple start() function written, which
>> kinda-sorta "works"; it will start the server, but there are two problems:
>>
>> 1) The "server" was written to stay interactive on a console, so you can
>> manage it from there.  As such, the process never exits, so the
>> initscript gets stuck on "starting"
>> 2) There is nowhere in the server config file to specify where it writes
>> it's data files.  So when I run this from my initscript, it seems to
>> default to the root directory, and I can't figure out how to tell it to
>> use something else as a working directory.
>>
>> So far, I've got this:
>>
>> depend() {
>>   need bootmisc localmount net
>> }
>>
>> start() {
>>   einfo "Starting Minecraft Server"
>>   cd /usr/local/games/minecraft-server
>>   start-stop-daemon --start --make-pidfile --pidfile
>> /var/run/minecraft-server.pid \
>>                     --exec /usr/bin/java -- -Xmx1024M -Xms1024M -jar
>> /usr/local/games/minecraft-server/minecraft_server.jar nogui
>>   eend $?
>> }
>>
>> Do any of the experts here know a way out of my dilemma?
>>
>> Jake Moe
>>
>
> You already know start-stop-daemon, good. Parameter --background will
> force the program to detach. That solves your first problem.
>
> --chdir should solve your second problem. You should also consider
> --user and --group to drop root privileges. It also sets $HOME in case
> the server does not write to the working directory but the home directory.
>
> Hope this helps,
> Florian Philipp
>
I've tried "--background", but then it just fails.  Adding "--verbose"
as well gives the following:

jmoe@aus8617 /etc/init.d $ sudo /etc/init.d/minecraft-server start
 * Starting Minecraft Server
Starting /usr/bin/java...
Detaching to start /usr/bin/java...done.   [ !! ]

Not the most helpful of messages.

For the second, of what is "--chdir" an argument?  If I read the man
page for start-stop-daemon, it had "--chroot" and "--chuid", but no
"--chdir".  I assume that "--chuid" can be used for changing the
user:group of the resulting process, but did you mean chroot instead of
chdir, or does that go with another command?

Also, when I say "the root directory", I don't mean root's home
directory (/root), I mean the root (/) directory.  So I wind up with
config files in the root of my filesystem.  Not good.

Jake Moe

Reply via email to