NginxProxyManager / nginx-proxy-manager

Docker container for managing Nginx proxy hosts with a simple, powerful interface
https://nginxproxymanager.com
MIT License
21.99k stars 2.53k forks source link

s6-overlay-suexec: fatal: can only run as pid 1 #2765

Open viriatusX opened 1 year ago

viriatusX commented 1 year ago

Hello, I use Geo2IP and PageSpeed modules with NPM, but the last working version is 2.9.20. I have seen in the changelog that 2.9.21 modifies the S6 Overlay. When I start the container in 2.9.21 onwards, it shows the following error:

s6-overlay-suexec: fatal: can only run as pid 1

It's a bug, or How to fix it? Thanks

viriatusX commented 1 year ago

UPDATE: the version 2.10.1 the error s6-overlay-suexec: fatal: can only run as pid 1 continues and not start the container. gets stuck in: A### Starting NPM orignal entrypoint ### and Docker stops.

Captura de pantalla 2023-03-29 a las 6 05 29
viriatusX commented 1 year ago

Please @jc21 , What changes did you apply in version 2.19.21 with S6? Is there a way to remove this error please? Many users have PageSpeed and GEOIP2 modules installed with a script by Entrypoint and with the new versions it is not compatible.

Captura de pantalla 2023-03-31 a las 0 26 41

Thanks a lot.

joaquinvacas commented 1 year ago

Hi!

Been trying to run this under Azure Container Instances, which doesn't support S6 overlay.

Is there any possibility for running NPM without S6 overlay? Let's say supervisor, tini or a shell script?

mattpurnell commented 1 year ago

Same issue - dumped the entrypoint script for loading geoip2 via compose yaml, hoping for a fix

manjieqi commented 11 months ago

Is there a solution to the same problem

manjieqi commented 11 months ago

chatgpt tell me:

Regarding the impact on the process ID (pid), these two commands have different effects.

  1. /init: When using the /init command to start the initialization process, the system will assign a new pid to that process. The specific pid assigned may vary depending on the system's implementation and configuration.

  2. exec /init: When using the exec /init command to replace the current script's process with the /init process, the script's process will be replaced by the /init process, and the new /init process will inherit the pid of the original script process. In other words, the pid of the /init process will be the same as the pid of the original script process.

In summary, using the /init command to start the /init process will assign it a new pid, while using the exec /init command to replace the current script process with the /init process will result in the /init process having the same pid as the original script process.

gcilento99 commented 11 months ago

Hi guys,

I can confirm I updated the last line in /data/entrypoint.sh from: /init to: exec /init

Then switched the container to run the latest version of the image (2.10.4) and it works!!

Try at your own risk

github-actions[bot] commented 5 months ago

Issue is now considered stale. If you want to keep it open, please comment :+1: