Description
I'm hitting the same problem as outlined in caddyserver/caddy#1802. The culprit seems to be how systemd handles the LimitNProc
option:
Line 30 in 49a805b
While caddy doesn't occupy that many processes, some other docker containers seem to use the same UID for their processes:
sudo ps -U caddy
PID TTY TIME CMD
4491 ? 00:00:01 mailrise
36706 ? 00:00:28 postgres
36760 ? 00:00:01 postgres
36761 ? 00:00:06 postgres
36762 ? 00:00:10 postgres
36763 ? 00:03:55 postgres
36764 ? 00:00:14 postgres
36765 ? 00:01:17 postgres
36766 ? 00:00:00 postgres
1597030 ? 00:00:03 postgres
1599669 ? 00:00:03 postgres
2081581 ? 00:25:43 redis-server
2082548 ? 00:00:36 postgres
2082623 ? 00:00:34 postgres
2654461 ? 00:00:00 start.sh
2654495 ? 00:00:00 Xvfb
2654496 ? 00:00:00 dumb-init
2654497 ? 00:48:58 node
2654671 ? 00:01:16 chrome
2654672 ? 00:01:16 chrome
2654673 ? 00:01:14 chrome
2654674 ? 00:01:14 chrome
2654675 ? 00:01:16 chrome
2654676 ? 00:01:13 chrome
2654677 ? 00:01:15 chrome
2654678 ? 00:01:14 chrome
2654683 ? 00:00:00 chrome_crashpad
2654684 ? 00:00:00 chrome_crashpad
2654685 ? 00:00:00 chrome_crashpad
2654686 ? 00:00:00 chrome_crashpad
2654691 ? 00:00:00 chrome_crashpad
2654692 ? 00:00:00 chrome_crashpad
2654693 ? 00:00:00 chrome_crashpad
2654694 ? 00:00:00 chrome_crashpad
2654703 ? 00:00:00 chrome
2654704 ? 00:00:00 chrome
2654705 ? 00:00:00 chrome
2654706 ? 00:00:00 chrome
2654707 ? 00:00:00 chrome
2654708 ? 00:00:00 chrome
2654709 ? 00:00:00 chrome
2654710 ? 00:00:00 chrome
2654711 ? 00:01:14 chrome
2654712 ? 00:01:13 chrome
2654715 ? 00:00:00 chrome_crashpad
2654717 ? 00:00:00 chrome_crashpad
2654718 ? 00:00:00 chrome_crashpad
2654722 ? 00:00:00 chrome_crashpad
2654723 ? 00:00:00 chrome
2654724 ? 00:00:00 chrome
2654727 ? 00:00:00 chrome
2654728 ? 00:00:00 chrome
2654729 ? 00:00:00 nacl_helper
2654730 ? 00:00:00 nacl_helper
2654732 ? 00:00:00 chrome_crashpad
2654750 ? 00:00:00 chrome_crashpad
2654752 ? 00:00:00 chrome_crashpad
2654753 ? 00:00:00 nacl_helper
2654757 ? 00:00:00 nacl_helper
2654759 ? 00:00:00 chrome_crashpad
2654761 ? 00:00:00 chrome
2654762 ? 00:00:00 chrome
2654767 ? 00:00:00 chrome_crashpad
2654768 ? 00:00:00 chrome_crashpad
2654770 ? 00:00:00 nacl_helper
2654781 ? 00:00:00 chrome
2654786 ? 00:00:00 chrome
2654796 ? 00:00:00 chrome_crashpad
2654800 ? 00:00:00 chrome
2654802 ? 00:00:00 chrome
2654816 ? 00:00:00 chrome_crashpad
2654817 ? 00:00:16 chrome
2654818 ? 00:00:17 chrome
2654821 ? 00:00:00 chrome
2654822 ? 00:00:00 chrome
2654823 ? 00:00:17 chrome
2654824 ? 00:00:17 chrome
2654828 ? 00:00:00 nacl_helper
2654881 ? 00:00:17 chrome
2654884 ? 00:00:00 nacl_helper
2654885 ? 00:00:16 chrome
2654886 ? 00:00:17 chrome
2654901 ? 00:00:00 nacl_helper
2654907 ? 00:00:17 chrome
2654910 ? 00:00:17 chrome
2654916 ? 00:00:00 nacl_helper
2654922 ? 00:00:17 chrome
2654985 ? 00:00:19 chrome
2654999 ? 00:00:00 nacl_helper
2655029 ? 00:00:05 chrome
2655048 ? 00:00:17 chrome
2655053 ? 00:00:05 chrome
2655063 ? 00:00:16 chrome
2655065 ? 00:00:17 chrome
2655066 ? 00:00:17 chrome
2655079 ? 00:00:17 chrome
2655080 ? 00:00:16 chrome
2655085 ? 00:00:05 chrome
2655089 ? 00:00:05 chrome
2655092 ? 00:00:17 chrome
2655096 ? 00:00:05 chrome
2655097 ? 00:00:05 chrome
2655105 ? 00:00:05 chrome
2655129 ? 00:00:05 chrome
2655136 ? 00:00:05 chrome
2655179 ? 00:00:05 chrome
2655180 ? 00:00:20 chrome
2655186 ? 00:00:17 chrome
2655199 ? 00:00:05 chrome
2655223 ? 00:00:05 chrome
2655315 ? 00:00:05 chrome
2655323 ? 00:00:05 chrome
2655330 ? 00:00:05 chrome
2655337 ? 00:00:05 chrome
2655341 ? 00:00:05 chrome
2655346 ? 00:00:05 chrome
2655385 ? 00:00:05 chrome
2655391 ? 00:00:05 chrome
The systemd documentation notes that TasksMax
should be preferred over LimitNProc
:
Note that
LimitNPROC=
will limit the number of processes from one (real) UID and not the number of processes started (forked) by the service. Therefore the limit is cumulative for all processes running under the same UID. Please also note that theLimitNPROC=
will not be enforced if the service is running as root (and not dropping privileges). Due to these limitations,TasksMax=
(see systemd.resource-control(5)) is typically a better choice thanLimitNPROC=
.
https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#Process%20Properties
Activity