Estos comandos son defined como parte del Linux Standards Base (LSB), según lo observado por @AndreKR.
Sin embargo, en algunos sistemas como Redhat (y probablemente SUSE), dependiendo de los paquetes instalados, estas funciones no se pueden definir en la ubicación especificada por el LSB, que es /lib/lsb/init-functions
. Más bien están definidos dentro de /etc/init.d/functions
. Además, en algunas versiones, la variante Redhat de /etc/init.d/functions
falta la función definida por LSB start_daemon
.Si se agrega el siguiente fragmento de la parte superior de la secuencia de comandos, debe ser portable a través de la mayoría de las distribuciones/instala:
if [[ -f /lib/lsb/init-functions ]]; then
. /lib/lsb/init-functions
elif [[ -f /etc/init.d/functions ]]; then
. /etc/init.d/functions
# Pretend to be LSB-compliant
function start_daemon() {
daemon $*
}
else
echo "Linux LSB init function script or Redhat /etc/init.d/functions is required for this script."
echo "See http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html"
exit 1
fi
No, pero '' kill' y pidof' son, que también son portátiles. –