pterodactyl / panel

Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.
https://pterodactyl.io
Other
6.76k stars 1.72k forks source link

Modded MC server not startting #5079

Closed KOTHBio closed 6 months ago

KOTHBio commented 6 months ago

Current Behavior

[Pterodactyl Daemon]: Checking server disk space usage, this could take a few seconds... [Pterodactyl Daemon]: Updating process configuration files... [Pterodactyl Daemon]: Ensuring file permissions are set correctly, this could take a few seconds... container@pterodactyl~ Server marked as starting... [Pterodactyl Daemon]: Pulling Docker container image, this could take a few minutes to complete... Pulling from pterodactyl/yolks Status: Image is up to date for ghcr.io/pterodactyl/yolks:java_17 Digest: sha256:07aae50dcc032201089bd0a65e8b6bbf1a173a8bfe534d363c8768a34a09298a [Pterodactyl Daemon]: Finished pulling Docker container image container@pterodactyl~ java -version openjdk version "17.0.10" 2024-01-16 OpenJDK Runtime Environment Temurin-17.0.10+7 (build 17.0.10+7) OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode, sharing) container@pterodactyl~ /home/container/run.sh env: ‘/home/container/run.sh’: Permission denied container@pterodactyl~ Server marked as offline... [Pterodactyl Daemon]: ---------- Detected server process in a crashed state! ---------- [Pterodactyl Daemon]: Exit code: 126 [Pterodactyl Daemon]: Out of memory: false [Pterodactyl Daemon]: Aborting automatic restart, last crash occurred less than 60 seconds ago.

  1. start server
  2. "permission denied"
  3. try again
  4. repeat

cantt join discordd due to bban ffrom coompromised acc

Expected Behavior

For MC server to start

Steps to Reproduce

Downloaded ATM9 modded server files, uplooadeed filees affter generating all necceesary filees loccally, reest is explainedd above

Panel Version

1.11.5

Wings Version

1.11.8

Games and/or Eggs Affected

MC Forge

Docker Image

Java 17

Error Logs

https://pteropaste.com/orep
https://ptero.co/uliduzajud

Is there an existing issue for this?

danny6167 commented 6 months ago

This isn't a bug with the panel. You have modified the egg to use the start.sh instead and not set permissions correctly. - Please use the discord for support.

Also note, your wings is out of date. Please update - YOU ARE VULNERABLE

KOTHBio commented 6 months ago

This isn't a bug with the panel. You have modified the egg to use the start.sh instead and not set permissions correctly. - Please use the discord for support.

Also note, your wings is out of date. Please update - YOU ARE VULNERABLE

didnt modify my egg,, modified my startup ccommand beccause ATM9 server pacck does not have a server.jar

an as for > Please use the discord for support

cantt join discordd due to bban ffrom coompromised acc My account was banned from the discord because i got compromised awhile back and they bbanned me, so ccant join.

danny6167 commented 6 months ago

Yep you modified the eggs startup command. The fact ATM9 doesn't have a server.jar doesn't matter. If you're using the correct egg it handles those cases.

Github issues are not the place for support requests.

KOTHBio commented 6 months ago

Yep you modified the eggs startup command. The fact ATM9 doesn't have a server.jar doesn't matter. If you're using the correct egg it handles those cases.

Github issues are not the place for support requests.

Where else do you expect me to get assisstance when iim banned from the discord? and the egg doesnt handle anything that isnt a jarfile, ive tried, which is why i had to change the startup command in the specific server

KOTHBio commented 6 months ago

im simply figuring out if there iis an answer to this, or if its genuinely a bug, and regardless of which, if therees something i can do abouut it

KOTHBio commented 6 months ago

java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true $( [[ ! -f unix_args.txt ]] && printf %s "-jar {{SERVER_JARFILE}}" || printf %s "@unix_args.txt" )

This is the default shipped startup command with tthe MC forge egg. It REQUIRES a jar file, or something written in Java, which the serverstart.sh or the run.sh that is shipped with ATM9 does not work

The aforementioned files houses the following

Startserver.sh below

!/bin/sh

set -eu FORGE_VERSION=47.2.20

To use a specific Java runtime, set an environment variable named ATM9_JAVA to the full path of java.exe.

To disable automatic restarts, set an environment variable named ATM9_RESTART to false.

To install the pack without starting the server, set an environment variable named ATM9_INSTALL_ONLY to true.

INSTALLER="forge-1.20.1-$FORGE_VERSION-installer.jar" FORGE_URL="http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.20.1-$FORGE_VERSION/forge-1.20.1-$FORGE_VERSION-installer.jar"

pause() { printf "%s\n" "Press enter to continue..." read ans }

if ! command -v "${ATM9_JAVA:-java}" >/dev/null 2>&1; then echo "Minecraft 1.20.1 requires Java 17 - Java not found" pause exit 1 fi

cd "$(dirname "$0")" if [ ! -d libraries ]; then echo "Forge not installed, installing now." if [ ! -f "$INSTALLER" ]; then echo "No Forge installer found, downloading now." if command -v wget >/dev/null 2>&1; then echo "DEBUG: (wget) Downloading $FORGE_URL" wget -O "$INSTALLER" "$FORGE_URL" else if command -v curl >/dev/null 2>&1; then echo "DEBUG: (curl) Downloading $FORGE_URL" curl -o "$INSTALLER" -L "$FORGE_URL" else echo "Neither wget or curl were found on your system. Please install one and try again" pause exit 1 fi fi fi

echo "Running Forge installer."
"${ATM9_JAVA:-java}" -jar "$INSTALLER" -installServer

fi

if [ ! -e server.properties ]; then printf "allow-flight=true\nmotd=All the Mods 9\nmax-tick-time=180000" > server.properties fi

if [ "${ATM9_INSTALL_ONLY:-false}" = "true" ]; then echo "INSTALL_ONLY: complete" exit 0 fi

JAVA_VERSION=$("${ATM9_JAVA:-java}" -fullversion 2>&1 | awk -F '"' '/version/ {print $2}' | cut -d'.' -f1) if [ ! "$JAVA_VERSION" -ge 17 ]; then echo "Minecraft 1.20.1 requires Java 17 - found Java $JAVA_VERSION" pause exit 1 fi

while true do "${ATM9_JAVA:-java}" @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.20.1-$FORGE_VERSION/unix_args.txt nogui

if [ "${ATM9_RESTART:-true}" = "false" ]; then
    exit 0
fi

echo "Restarting automatically in 10 seconds (press Ctrl + C to cancel)"
sleep 10

done

Run.sh Below

!/usr/bin/env sh

Forge requires a configured set of both JVM and program arguments.

Add custom JVM arguments to the user_jvm_args.txt

Add custom program arguments {such as nogui} to this file in the next line before the "$@" or

pass them to this script directly

java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.20.1-47.2.20/unix_args.txt "$@"

The Default startup command was changed to /home/container/start.sh (after renaming the run.sh to start.sh) because it wont recogize it otherwise

Runnning it without a jar file an using the default start command, it says as follows:

container@pterodactyl~ java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar server.jar Error: Unable to access jarfile server.jar

danny6167 commented 6 months ago

java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true $( [[ ! -f unix_args.txt ]] && printf %s "-jar {{SERVER_JARFILE}}" || printf %s "@unix_args.txt" )

This is the default shipped startup command with tthe MC forge egg. It REQUIRES a jar file, or something written in Java, which the serverstart.sh or the run.sh that is shipped with ATM9 does not work

No actually. If you read and understand that startup line it supports either a regular server.jar, OR unix_args.txt

If the included forge egg doesn't work for you, try the one in Parkers egg repo https://github.com/parkervcp/eggs/

KOTHBio commented 6 months ago

java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true $( [[ ! -f unix_args.txt ]] && printf %s "-jar {{SERVER_JARFILE}}" || printf %s "@unix_args.txt" ) This is the default shipped startup command with tthe MC forge egg. It REQUIRES a jar file, or something written in Java, which the serverstart.sh or the run.sh that is shipped with ATM9 does not work

No actually. If you read and understand that startup line it supports either a regular server.jar, OR unix_args.txt

If the included forge egg doesn't work for you, try the one in Parkers egg repo https://github.com/parkervcp/eggs/

There isnt a unix_args.txt file, theres a user_jvm_args.txt but thats it. even downloading Curse Forge Enhanced it still calls for a jar file, and if i was to rewrite it to use the user_jvm it doesnt work, maybe im misundderstanding something here

if i run the user_jvm or make a unix_arg file with the user_jvm stuff the following occurs

container@pterodactyl~ java -Xms128M -Xmx32000M -Dterminal.jline=false -Dterminal.ansi=true @unix_args.txt Usage: java [options] [args...] (to execute a class) or java [options] -jar [args...] (to execute a jar file) or java [options] -m [/] [args...] java [options] --module [/] [args...] (to execute the main class in a module) or java [options] [args] (to execute a single source-file program) Arguments following the main class, source file, -jar , -m or --module / are passed as the arguments to main class. where options include: -cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> --class-path <class search path of directories and zip/jar files> A : separated list of directories, JAR archives, and ZIP archives to search for class files. -p --module-path ... A : separated list of directories, each directory is a directory of modules. --upgrade-module-path ... A : separated list of directories, each directory is a directory of modules that replace upgradeable modules in the runtime image --add-modules [,...] root modules to resolve in addition to the initial module.

can also be ALL-DEFAULT, ALL-SYSTEM, ALL-MODULE-PATH. --enable-native-access [,...] modules that are permitted to perform restricted native operations. can also be ALL-UNNAMED. --list-modules list observable modules and exit -d --describe-module describe a module and exit --dry-run create VM and load main class but do not execute main method. The --dry-run option may be useful for validating the command-line options such as the module system configuration. --validate-modules validate all modules and exit The --validate-modules option may be useful for finding conflicts and other errors with modules on the module path. -D= set a system property -verbose:[class|module|gc|jni] enable verbose output for the given subsystem -version print product version to the error stream and exit --version print product version to the output stream and exit -showversion print product version to the error stream and continue --show-version print product version to the output stream and continue --show-module-resolution show module resolution output during startup -? -h -help print this help message to the error stream --help print this help message to the output stream -X print help on extra options to the error stream --help-extra print help on extra options to the output stream -ea[:...|:] -enableassertions[:...|:] enable assertions with specified granularity -da[:...|:] -disableassertions[:...|:] disable assertions with specified granularity -esa | -enablesystemassertions enable system assertions -dsa | -disablesystemassertions disable system assertions -agentlib:[=] load native agent library , e.g. -agentlib:jdwp see also -agentlib:jdwp=help -agentpath:[=] load native agent library by full pathname -javaagent:[=] load Java programming language agent, see java.lang.instrument -splash: show splash screen with specified image HiDPI scaled images are automatically supported and used if available. The unscaled image filename, e.g. image.ext, should always be passed as the argument to the -splash option. The most appropriate scaled image provided will be picked up automatically. See the SplashScreen API documentation for more information @argument files one or more argument files containing options -disable-@files prevent further argument file expansion --enable-preview allow classes to depend on preview features of this release To specify an argument for a long option, you can use --= or -- .
KOTHBio commented 6 months ago

found a solution, had to follow the directory to where it was supposed to be pointing, (where the run.sh is supposed to point it to) and had to move the unix_args to the root directory for it to read.

solipsist01 commented 2 months ago

for me it was a permission issue. the wings container starts with 1000:1000 as user / group so, the file location i had to do chown 1000:1000 /filelocation

edit: it wasn't permission. forge doesn't work for me, paper does.

danny6167 commented 2 months ago

for me it was a permission issue. the wings container starts with 1000:1000 as user / group so, the file location i had to do chown 1000:1000 /filelocation

This really has nothing to do with this issue. Please use the Discord for support.