Infinidoge / nix-minecraft

An attempt to better support Minecraft-related content for the Nix ecosystem
MIT License
274 stars 28 forks source link

Fabric 1.20.4 not working #55

Closed FlafyDev closed 10 months ago

FlafyDev commented 11 months ago

Hey, I tried running a 1.20.4 fabric server and it doesn't seem to be working. I am getting this error:

Failed at step CHDIR spawning /nix/store/fxpm0mf2fj696b6b2p3i5qmlrx9gl27v-unit-script-minecraft-server-datapacktests-post-stop/bin/minecraft-server-datapacktests-post-stop

It seems this file is owned by root:root, which is why it says it doesn't exist.

Is anyone able to run a 1.20.4 fabric server? or is the issue only for me?

Infinidoge commented 11 months ago

Hmm, that's odd. Can you post your server configuration? This seems to be an issue in the service running it somewhere, as opposed to the Minecraft server itself.

Infinidoge commented 10 months ago

Since no information has been provided, I'm going ahead and closing this issue.

BreakingTV commented 1 month ago

Hey, have the same error It only appears if I specify the dataDir folder

I already tried letting the software create it by its own and I tried creating it myself, both not doing anything If I remove the 'DataDir' option, it works perfectly fine

The error: minecraft-server-survival.service: Failed at step CHDIR spawning /nix/store/cp8p3wn3m5bxxjf0v2hifapqj7b74lgh-minecraft-server-survival-stop-post/bin/minecraft-server-survival-stop-post: No such file or directory

Infinidoge commented 1 month ago

What dataDir did you specify, and where? Notably, the minecraft user/group needs to have permission to access that directory, so doing stuff like using a daia directory in your personal $HOME won't work.

BreakingTV commented 1 month ago

I made a directory at /mnt/raid/services named minecraft The services folder is owned by my main account The minecraft folder is owned by the Minecraft user/group

That means it could already create the folder (because even if I didnt create it, it would be after a rebuild) and it had permissions on it

Infinidoge commented 1 month ago

What were the permissions on /mnt/raid/services? (Also /mnt/raid and /mnt itsekf) If any were missing the global execute permission, then minecraft wouldn't be able to see that folder. The folder gets greater by root, so whether or not it gets created isn't a test of whether or not it can see it.

BreakingTV commented 1 month ago

/mnt is owned by raid /mnt/raid is owned by 1000 /mnt/raid/services is owned by semiko (my main account)

But the thing is that /srv/ is also owned by root, that means the minecraft folder in /srv/ is seen even if /mnt is owned by root

Or could it be because of the /mnt/raid 1000 permissions. But how can other services be seen in /mnt/raid/services and the only one that cant see itself is the minecraft service?

Infinidoge commented 1 month ago

What are the permissions on /mnt, /mnt/raid, and /mnt/raid/services respectively?

My guess is either: Other services are run on root, and thus don't care, or they use specific systemd options that I'm not aware of that bypass it. (Probably read-write paths or something.)

/srv and /mnt being owned by root doesn't generally matter because root creates and chowns the minecraft folders, and /srv and /mnt are generally chmod 755 which has the execute permission, letting minecraft see the folder.