- Newest
- Most votes
- Most comments
Server is created on windows. Windows does not have the concept of "permission to execute" as far as I know.
Perhaps the problem is that I'm using S3 bucket which requires a zip file for the build. Unzipping that file probably applies some default set of permissions on the executable, making it not allowed to execute by low-access ec2-user? I will try to use AWS CLI instead which takes a folder and uploads it so it will not be unzipped and will not receive unusable permissions on the fleet instance. Will see if this helps.
This S3 workflow not working on windows suggests that it wasn't tested with linux builds that originate from Unity on Windows.
Edit: replacing the S3 bucket with AWS CLI upload-build command bypassed the file permission issue successfully. The S3 bucket appears to not be able to run a linux build that is created on windows due to file permission limitations!
This issue is likely related to file permissions on your game server executable. When creating a build for Amazon GameLift, it's crucial to ensure that the executable file has the correct permissions set, particularly the execute permission.
To resolve this issue, you should take the following steps:
-
Before zipping and uploading your build files to S3, make sure to set the correct permissions on your server executable. You can do this by using the chmod command on a Linux system. For example:
chmod +x server.x86_64
-
After setting the permissions, create a new zip file with the updated permissions.
-
Upload this new zip file to your S3 bucket.
-
Create a new build in GameLift using this updated zip file.
-
Create a new fleet using the new build.
It's worth noting that sometimes, security updates or company policies can affect file permissions. In your case, it seems that your company may have run some security updates that locked permissions on your server files. Always check and set the appropriate permissions before creating your build package.
If the issue persists after following these steps, you may want to:
-
Validate your build locally using Amazon GameLift Local before uploading to GameLift.
-
Double-check your Unity build settings to ensure you're building for Linux (x86_64) with the "Server Build" option checked.
-
Review the GameLift fleet creation logs for more detailed error messages.
-
Ensure that your launch path and parameters in the GameLift fleet configuration are correctly set to point to your executable.
If you continue to experience issues, consider reaching out to AWS support for more specialized assistance.
Sources
Gamelift - Unity Managed Linux error: ".x86_64 is not executable" | AWS re:Post
Package your game build files - Amazon GameLift
Create a build from a file directory - Amazon GameLift
Relevant content
- Accepted Answerasked 5 years ago
- asked 10 months ago
- asked a year ago
- AWS OFFICIALUpdated 6 months ago
- AWS OFFICIALUpdated 3 months ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated a month ago