From: dark.pen9108@fastmail.com
To: supervision@list.skarnet.org
Subject: Trouble starting services on boot with s6-rc
Date: Sat, 20 Aug 2022 07:01:11 -0400 [thread overview]
Message-ID: <18dc7efd-9ce3-4350-b051-49c047e32e7a@www.fastmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 4671 bytes --]
Hi,
Hoping this is the right place to ask for some help as I am very new to s6 and not well versed on any init system.
I’m attempting to use what I understand to be the “new” s6-rc way to start some processes in a docker container.
Just for testing out what I want to do, I have a oneshot who’s job is just to sleep, and a longrun that depends on the oneshot.
I have created the following files
[Aug 19 18:42:24 root@s6 ~]# ll /etc/s6-overlay/s6-rc.d/longrun_test/
total 12
-rw-rw-r-- 1 root root 13 Aug 17 23:19 dependencies
-rw-rw-r-- 1 root root 53 Aug 19 18:29 run
-rw-rw-r-- 1 root root 8 Aug 17 23:19 type
[Aug 19 18:42:24 root@s6 ~]# cat /etc/s6-overlay/s6-rc.d/longrun_test/type
longrun
[Aug 19 18:42:24 root@s6 ~]# cat /etc/s6-overlay/s6-rc.d/longrun_test/run
#!/command/execlineb -P
/usr/local/bin/longrun_start
[Aug 19 18:42:24 root@s6 ~]# cat /etc/s6-overlay/s6-rc.d/longrun_test/dependencies
sleeponstart
[Aug 19 18:42:24 root@s6 ~]# ll /etc/s6-overlay/s6-rc.d/sleeponstart/
total 8
-rw-rw-r-- 1 root root 8 Aug 15 21:53 type
-rw-rw-r-- 1 root root 52 Aug 16 20:25 up
[Aug 19 18:42:24 root@s6 ~]# cat /etc/s6-overlay/s6-rc.d/sleeponstart/type
oneshot
[Aug 19 18:42:24 root@s6 ~]# cat /etc/s6-overlay/s6-rc.d/sleeponstart/up
#!/command/execlineb -P
/usr/local/bin/sleeponstart
I can see that my services are registered with s6-rc
[Aug 19 18:43:04 root@s6 ~]# s6-rc-db list all | grep -e longrun_test -e sleeponstart
sleeponstart
longrun_test
The test services are very simple scripts just to prove they ran
[Aug 19 18:44:23 root@s6 ~]# cat /usr/local/bin/sleeponstart
#!/bin/bash
sleep_time=30
sleep ${sleep_time}
echo "I slept for ${sleep_time}." > /tmp/i_slept
[Aug 19 18:44:23 root@s6 ~]# cat /usr/local/bin/longrun_start
#!/bin/bash
echo "I started the longrun" > /tmp/longrun_started
But when I look in tmp I never see the files created.
[Aug 19 18:44:23 root@s6 ~]# ll /tmp/
total 652
-rw------- 1 root root 5516 Mar 7 20:55 s6-overlay-noarch.tar.xz
-rw------- 1 root root 656864 Mar 7 20:55 s6-overlay-x86_64.tar.xz
If I start the longrun manually it and its dependency do run.
[Aug 19 18:50:00 root@s6 ~]# s6-rc -a change longrun_test
[Aug 19 18:52:08 root@s6 ~]# ll /tmp/
total 660
-rw-r--r-- 1 root root 16 Aug 19 18:50 i_slept
-rw-r--r-- 1 root root 22 Aug 19 18:52 longrun_started
-rw------- 1 root root 5516 Mar 7 20:55 s6-overlay-noarch.tar.xz
-rw------- 1 root root 656864 Mar 7 20:55 s6-overlay-x86_64.tar.xz
So I would normally just think I am missing something to make them start on boot BUT, soon after boot I do see my oneshot running.
[Aug 19 18:53:54 root@s6 /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.5 0.0 200 64 ? Ss 18:53 0:00 /package/admin/s6/command/s6-svscan -d4 -- /run/service
root 14 0.0 0.0 4152 3104 pts/0 Ss+ 18:53 0:00 /bin/sh -e /run/s6/basedir/scripts/rc.init top
root 15 0.0 0.0 204 64 ? S 18:53 0:00 s6-supervise s6-linux-init-shutdownd
root 16 0.0 0.0 196 4 ? Ss 18:53 0:00 /package/admin/s6-linux-init/command/s6-linux-init-shutdownd -c /run/s6/basedir -g 3000 -C -B
root 23 0.0 0.0 204 68 ? S 18:53 0:00 s6-supervise s6rc-oneshot-runner
root 24 0.0 0.0 204 64 ? S 18:53 0:00 s6-supervise longrun_test
root 25 0.0 0.0 204 60 ? S 18:53 0:00 s6-supervise s6rc-fdholder
root 28 0.0 0.0 208 64 pts/0 S+ 18:53 0:00 s6-rc -v2 -u -t 5000 -- change top
root 32 0.0 0.0 180 4 ? Ss 18:53 0:00 /package/admin/s6/command/s6-ipcserverd -1 -- /package/admin/s6/command/s6-ipcserver-access -v0 -E -l0 -i data/rules
root 34 0.0 0.0 192 52 pts/0 S+ 18:53 0:00 /package/admin/s6-2.11.1.0/command/s6-sudoc -e -t 30000 -T 4999 -- up 3
root 36 0.0 0.0 200 60 ? S 18:53 0:00 /package/admin/s6/command/s6-sudod -t 30000 -- /package/admin/s6-rc/command/s6-rc-oneshot-run -l ../.. --
root 38 0.0 0.0 4152 3080 ? S 18:53 0:00 /bin/bash /usr/local/bin/sleeponstart <--------------
root 40 0.0 0.0 2616 940 ? S 18:53 0:00 sleep 30 <-----------------
root 53 1.0 0.0 4812 3836 pts/1 Ss 18:53 0:00 /bin/bash
root 74 0.0 0.0 7396 3268 pts/1 R+ 18:53 0:00 ps aux
Sorry if this was much more info than was relevant. Any help would be great. Thanx so much!
-Benjamin
next reply other threads:[~2022-08-20 11:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-20 11:01 dark.pen9108 [this message]
2022-08-20 12:57 ` Laurent Bercot
2022-08-20 14:30 ` dark.pen9108
2022-08-20 14:58 ` Laurent Bercot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=18dc7efd-9ce3-4350-b051-49c047e32e7a@www.fastmail.com \
--to=dark.pen9108@fastmail.com \
--cc=supervision@list.skarnet.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).