Re: Re: Bug#225465: debian-policy: packages must give choice to notstart at boot, via debconf
Hi all,
[please make me CC, i am not in this list]
Great idea, that is a long time that I would like to suggest such a way (as hpux does) to manage easily startup process but I
never manage to find the right ml to suggest it.
To share my experience, hpux uses to place its statup config files in /etc/rc.config.d. Nice place isn't it? But I don't know if
it is possible to use it without violating some patent?
I also noticed that since hp-ux 11.00 some process could only be started via their startup link (ie /sbin/rci.d/Sxxprocess) and
couldn't by the startup script (ie /sbin/init.d/process).
> Will Lowe writes:
> > I abhor init scripts that do something like:
>
> > #!/bin/sh
> > . /etc/default/$package # this contains "RUN_AT_BOOT=YES"
> > test "$RUN_AT_BOOT" -eq "YES" || exit 0
>
> Try:
>
> . /etc/default/package # this contains "RUN_package_AT_BOOT"
> test -z "$RUN_package_AT_BOOT" && echo $0 | grep -q '^S' && exit 0
hmm I try also try this example but failed to me (I use bash; does it works for another shell?)
I do have at least to put 'RUN_package_AT_BOOT=' in /etc/default/$package
So by default we would have to set RUN_package_AT_BOOT=1 or RUN_package_AT_BOOT="yes". And I feel so that the common behavior
would be to reverse this value (=0 or ="no"), also I prefer the previous test.
Now I not quite sure how startup scripts are launched:
I mean if /etc/rci.d is added in the PATH then ok "echo $0 | grep -q '^S'" would work OTC not?
In conclusion here is a small header which I would suggested:
#!/bin/sh
# set -x
StartCfgFile="/etc/default/package" # this contains "RUN_package_AT_BOOT=yes"
PgrmName=${0##*/}
KS=${PgrmName:0:3}
KS=${KS%%[0-9][0-9]} # to be sure that it is well a [KS][:digit:][:digit:]
if [ -f ${StartCfgFile} ] ; then
. ${StartCfgFile}
else
echo "Default S/K config file (${StartCfgFile}) is absent!" >&2
echo "So start/stop skipped. Please check!" >&2
exit 2
fi
if [ "${KS}" == "S" ] || [ "${KS}" == "K" ] ; then
if [ "${RUN_package_AT_BOOT:0:1}" != "Y" ] && [ "${RUN_package_AT_BOOT:0:1}" != "y" ] ; then
echo "Start/stop skipped (see ${StartCfgFile})." >&2
exit 2
fi
fi
[snip]
Its major inconvience: not applicable for all shell :(
hth,
Joel
Reply to: