Мне удалось решить мою проблему:
kill timeout 70
start on runlevel RUNLEVEL=[016] PREVLEVEL=[2345] and (starting rc RUNLEVEL=[016] or stopping mysql or stopping portmap or stopping idmapd or stopping statd)
task
exec the-script-that-shuts-clients-down.sh
Ну, почти, потому что похоже, что у Upstart есть небольшая ошибка, характерная для привязки к rc. По крайней мере, в Ubuntu 10.10. У меня нет 11.04 под рукой, чтобы подтвердить это.
Работа вокруг сейчас выглядит так:
В the-script-that-shuts-clients-down.sh , перед выходом я делаю
touch /etc/init/my-job.conf
, где my-job.conf содержит материал выше.
Еще один улов заключается в том, что если я пишу стартовый rc, а не запускаю rc RUNLEVEL = [016], то выскочка застревает на rc при загрузке (и тот же самый контакт команда блокирует его).