El día viernes, febrero 23, 2024 a las 06:06:18 -0500, Daniel Walsh escribió:
On 2/23/24 5:20 AM, Matthias Apitz wrote:
> Hello,
>
> I'm facing the following small issue while stopping a podman container
> on RedHat 8.9 and SuSE SLES 15SP4. Inside the container runs also a
> SuSE SLES 15SP4:
>
> $ podman run -d -p 2022:22 -p 28076:8076 -p 23045:3045 7c180cc3c676
> c408e9d468cdebbc11a2d974ccf40e315fa724ada702e713359019a25b2b6882
>
> ...
>
> $ podman stop c408e9d468cdebbc11a2d974ccf40e315fa724ada702e713359019a25b2b6882
> WARN[0010] StopSignal SIGQUIT failed to stop container vibrant_bartik in 10 seconds,
resorting to SIGKILL
> c408e9d468cdebbc11a2d974ccf40e315fa724ada702e713359019a25b2b6882
>
> The Dockerfile which is used to build the container end with:
>
> $ tail -5 suse/Dockerfile
> EXPOSE 22 8076 3045
>
> ENTRYPOINT /usr/local/bin/start.sh
>
> STOPSIGNAL SIGQUIT
>
> Any ideas what I do wrong?
>
> matthias
>
Most likely the program running in start.sh is ignoreing the SIGSTOP signal.
The start.sh gets build from Dockerfile in the image:
...
RUN echo "/etc/init.d/postgres start" >> /usr/local/bin/start.sh
RUN echo "/usr/local/bin/initSunRise.sh" >> /usr/local/bin/start.sh
RUN echo "/usr/sbin/sshd -D" >> /usr/local/bin/start.sh
RUN chmod 0755 /usr/local/bin/start.sh
EXPOSE 22 8076 3045
ENTRYPOINT /usr/local/bin/start.sh
STOPSIGNAL SIGQUIT
The script /etc/init.d/postgres starts the PostgreSQL server. The script
/usr/local/bin/initSunRise.sh loads a database dump into the server
with:
export LD_LIBRARY_PATH=/usr/local/sisis-pap/lib
printf "CREATE ROLE sisis WITH SUPERUSER CREATEDB LOGIN PASSWORD 'sisis123'
;\n" | /usr/local/sisis-pap/pgsql/bin/psql -U postgres >> /home/sisis/err
2>&1
/usr/local/sisis-pap/pgsql/bin/createdb -U sisis -T template0 sisis >>
/home/sisis/err 2>&1
cd /home/sisis
nohup sh -c 'gzip -dc /home/sisis/dump/testdb.dmp.gz |
/usr/local/sisis-pap/pgsql/bin/psql -Usisis sisis >> /home/sisis/err 2>&1 ;
/usr/local/sisis-pap/pgsql/bin/psql -Usisis sisis < ~sisis/sc/PosUpdSeq.sql >>
/home/sisis/err 2>&1' &
and the processes will end, when the dump is loaded; at the moment I
started the container again and I see it run fine:
$ podman run -d -p 2022:22 -p 8076:8076 -p 3045:3045 suse
3459e118898dc575c9d07bc7dcfdb13fe2f7d3f9e9868b151271b55fb3241617
$ ssh -p 2022 root@localhost
root@localhost's password:
459e118898d:~ # ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 /bin/sh -c /usr/local/bin/start.sh
30 ? S 0:00 /usr/local/sisis-pap/pgsql-15.1/bin/postmaster -D /
33 ? Ss 0:00 postgres: logger
34 ? Ss 0:00 postgres: checkpointer
35 ? Ss 0:00 postgres: background writer
37 ? Ss 0:00 postgres: walwriter
38 ? Ss 0:00 postgres: autovacuum launcher
39 ? Ss 0:00 postgres: logical replication launcher
45 ? S 0:00 sh -c gzip -dc /home/sisis/dump/testdb.dmp.gz | /us
46 ? S 0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 star
47 ? R 0:02 gzip -dc /home/sisis/dump/testdb.dmp.gz
48 ? S 0:00 /usr/local/sisis-pap/pgsql/bin/psql -Usisis sisis
49 ? Rs 0:16 postgres: sisis sisis [local] COPY
50 ? Rs 0:00 sshd: root@pts/0
52 pts/0 Ss 0:00 -bash
85 pts/0 R+ 0:00 ps ax
When the load is finished after ~3 minutes it looks like this:
3459e118898d:~ # ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 /bin/sh -c /usr/local/bin/start.sh
30 ? S 0:00 /usr/local/sisis-pap/pgsql-15.1/bin/postmaster -D /
33 ? Ss 0:00 postgres: logger
34 ? Ss 0:00 postgres: checkpointer
35 ? Ss 0:00 postgres: background writer
37 ? Ss 0:01 postgres: walwriter
38 ? Ss 0:00 postgres: autovacuum launcher
39 ? Ss 0:00 postgres: logical replication launcher
46 ? S 0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 star
50 ? Ds 0:00 sshd: root@pts/0
52 pts/0 Ss 0:00 -bash
290 pts/0 R+ 0:00 ps ax
i.e. only the PostgreSQL server is running (postmaster and its children
postgres) and the sshd and my ssh session.
Thanks
matthias
--
Matthias Apitz, ✉ guru(a)unixarea.de,
http://www.unixarea.de/ +49-176-38902045
Public GnuPG key:
http://www.unixarea.de/key.pub
I am not at war with Russia. Я не воюю с Россией.
Ich bin nicht im Krieg mit Russland.