Re: writing s6 services
El mar., 3 nov. 2020 a las 8:48, billa chaitanya escribió: > > >So, Is there any variable we can use inside run or finish > > script of a service equivalent to the pid of the process started inside > > run script? The PID of the supervised process will be the same as that of the 'run' script if it is correctly written, so it's $$ for a shell script, and the value of the environment variable specified to the getpid program for an execline script. * http://www.skarnet.org/software/execline/getpid.html It is not available inside the 'finish' script, but even if it was, it is no longer useful since, if that script is being executed, the supervised process has already terminated, and the PID it had has been 'released'. G.
Re: writing s6 services
On Wed, Oct 28, 2020 at 7:31 PM Laurent Bercot wrote: > >1) Is there a possibility to add an ENV variable dynamically? > >I have a shell script which fills out some variables like > >IPADDRESS, SERVER etc .. which I need to use in starting a process later > >as part of starting a service/stopping a service. > > You can do whatever you want in a run script, as long as by the end > of it, the pid of the long-running daemon is the pid your run script > was started as. > If your run script is a shell script, you can absolutely source the > script that fills out your environment variables. It is not the most > idiomatic or safe way to do it, but it will absolutely work. > > > >2) Does s6-supervise has the intelligence of findingout $MAINPID as the > >systemd does?( > > > https://systemd-devel.freedesktop.narkive.com/dpY7US7K/a-little-help-with-mainpid-please > > Yes, that is the point of a process supervisor. > You don't need a variable such as $MAINPID because the supervisor > always > remembers the pid of its child. You don't need a pidfile or anything of > the sort. >So, Is there any variable we can use inside run or finish > script of a service equivalent to the pid of the process started inside > run script? > -- > Laurent > >
Re: writing s6 services
1) Is there a possibility to add an ENV variable dynamically? I have a shell script which fills out some variables like IPADDRESS, SERVER etc .. which I need to use in starting a process later as part of starting a service/stopping a service. You can do whatever you want in a run script, as long as by the end of it, the pid of the long-running daemon is the pid your run script was started as. If your run script is a shell script, you can absolutely source the script that fills out your environment variables. It is not the most idiomatic or safe way to do it, but it will absolutely work. 2) Does s6-supervise has the intelligence of findingout $MAINPID as the systemd does?( https://systemd-devel.freedesktop.narkive.com/dpY7US7K/a-little-help-with-mainpid-please Yes, that is the point of a process supervisor. You don't need a variable such as $MAINPID because the supervisor always remembers the pid of its child. You don't need a pidfile or anything of the sort. -- Laurent