Hi Olaf,

thanks for the follow-up:

On Wed, 02 Sep 2026 12:55:42 +0900 Olaf Meeuwissen
<[email protected]> wrote:
> Hi Lorenzo,
> 
> Lorenzo <[email protected]> writes:
> 
> > ping
> 
> Apologies for not following up on your earlier reaction.  As for
> keeping psmisc a Recommends:, all the /etc/sv/getty-*/run scripts,
> except the one for ttyv0, call fuser *unconditionally* (if the device
> exists) and exit with status 163 on failure.  In that case (f)getty
> is not run.
> [...]
> I'm no expert but unconditionally calling fuser looks like it
> warrants a Depends: to me.  Unless something else handles the case
> where no ports are opened for local login by the getty-run scripts.
> # Guessing /etc/inittab could be responsible for that.

I've changed runscripts so that now they check for fuser before calling
it; the bottom line is that, since the test is only useful when runit
is not init (especially when switching init from systemd or sysvinit)
and the primary use case for getty-run is runit as init, I prefer not to
add the dependency.
For comparison, getties on other init systems do not test for busy
devices at all.

> FWIW, psmisc Depends: on libc6 and libtinfo6, as does bash, and has no
> Recommends:, at least on amd64, so there would be no additional
> dependencies that need installing.
> # Actually, bash Pre-Depends: on those packages.

Yes, most systems will have psmisc already installed, but Debian folks
responsible for the essential set decided that psmisc was not
essential, and there are use case like minimal chroot for testing or
container where a small footprint in term of dependencies matters.
Since runit (as init) does not need psmisc to function I prefer to not
add the extra Dependency and keep runit dependencies minimal (for the
record, I'm working on removing the runit-helper dependency and to
reduce the footprint of the sysuser-helper one)

> 
> Curiously, only /etc/sv/getty-ttyS0/run produces the "21: fuser: not
> found" error message.  Might that be caused by the different shebang
> for that script?

after invoke-run execs the run script, it's just as a standard shell

note that the current code for /etc/sv/getty-ttyS0/run is

if fuser -v /dev/"$SGETTY"  ; then
    echo "already another process on $SGETTY: stopping getty-ttyS0"
    exec sv d .
fi

so I don't think fuser missing is the cause for your getty restart
loop, for example

cat ./test.sh
-----------------------
#!/bin/bash
#set -e

if bleah /dev/"$SGETTY"  ; then
    echo "getty stopped"
fi

echo "reached even if bleah is not found"

exit
------------------------------------

$ ./test
./test: line 4: bleah: command not found
reached even if bleah is not found

if your getty keeps restarting after you upgrade to 2.1.3-5 feel free
to open another bug and attach your /etc/sv/getty-ttyS0 script.

Best Regards,
Lorenzo

> 
> FWIW, psmisc Depends: on libc6 and libtinfo6, as does bash, and has no
> Recommends:, at least on amd64, so there would be no additional
> dependencies that need installing.
> # Actually, bash Pre-Depends: on those packages.
> 
> > On Sat, 17 May 2025 11:13:36 +0900 Olaf Meeuwissen
> > <[email protected]> wrote:
> >> Dear Maintainer,
> >> 
> >> After upgrading from 2.2.0-2 to 2.2.0-3, I noticed
> >> 
> >>   $ ps -HAf | grep [r]unsvdir
> >>   root      1738     1  0 10:24 ?        00:00:00   runsvdir -P
> >> /etc/service log: run: 21: fuser: not found
> >> /etc/sv/getty-ttyS0/run: 21: fuser: not found
> >> /etc/sv/getty-ttyS0/run: 21: fuser: not found
> >> /etc/sv/getty-ttyS0/run: 21: fuser: not found
> >> /etc/sv/getty-ttyS0/run: 21: fuser: not found
> >> /etc/sv/getty-ttyS0/run: 21: fuser: not found
> >> ./etc/sv/getty-ttyS0/run: 21: fuser: not found
> >> /etc/sv/getty-ttyS0/run: 21: fuser: not found
> >> /etc/sv/getty-ttyS0/run: 21: fuser: not found
> >
> > Olaf,
> >
> > I'm still interested and available to understand and fix
> > the issue that causes the restart loop of the getty service, but I
> > need you to provide more info to understand what causes the problem
> >
> >> * do you have /dev/tty-S0 in you machine?
> 
> No, but I have /dev/ttyS0 thru /dev/ttyS3.
> 
> BTW, the error message is about the fuser command on line 21 not being
> found.
> 
> >> * Also the run file does some greppin on /proc/cmdline to guess the
> >>   "right" serial console and that might be wrong as well: could you
> >>   print the value of $SGETTY variable in the runscript, just before
> >>   the exec line and see if that is something weird/wrong?
> 

Reply via email to