Salut,
Je suis en train d'adapter CentOS pour une utilisation dans un container LXC, pour ça j'ai remplacé {/etc,etc/rc.d}/rc.sysinit et /etc/init.d/halt par des version largement simplifiées. J'ai viré de ces scripts toutes les références à des trucs interdit par lxc.cap.drop ou inutiles dans ce contexte de virtualisation (synchronisation de l’horloge, remount,ro…), dans /etc/init.d/halt outre le "select case" classique à tout init script il me reste ce code là :
# Kill all processes.
[ "${BASH+bash}" = bash ] && enable kill
echo -n "Sending all processes the TERM signal..."
/sbin/killall5 -15
[ $? -eq 1 ] && failure || success
echo
sleep 2
echo -n "Sending all processes the KILL signal..."
/sbin/killall5 -9
[ $? -eq 1 ] && failure || success
echo
# Write record to wtmp file
/sbin/halt -w
# Tell init to re-exec itself.
kill -TERM 1
# reboot or halt the container
echo $(/bin/basename $command)
exec $command
Vu que je drop cap_sys_admin j'ai plus le droit d’utiliser mount dans le container, j'ai donc viré toute les références à cette commande jusqu'à:
# Tell init to re-exec itself.
kill -TERM 1
Et comme j'aime faire les choses proprement, je me pose la question de l'utilité de garder cette partie du script, la nécessité de re-executer l'init à l’arrêt est-elle liée au remontage en read-only du filesystem ou à t'elle un autre utilité ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.