Согласно вашему скрипту инициализации, "/bin/init.d/unicorn restart" отправляет сигнал HUP ведущему процессу единорога
------ обрезается
restart|reload)
sig HUP && echo reloaded OK && exit 0
echo >&2 "Couldn't reload, starting '$CMD' instead"
su - $USER -c "$CMD"
----- обрезается
Вот что HUP делает с процессом единорога:
перезагружает конфигурационный файл и корректно перезапускает всех рабочих. Если директива preload_app имеет значение false (по умолчанию), то при перезапуске работники также поймут любые изменения кода приложения. Если «preload_app» имеет значение true, то изменения кода приложения не будут иметь эффекта.
То, что вы ищете, это сигнал USR2, который ваш параметр обновления до единорога уже делает!
Сигнал USR2 повторно запускает исполняемый двоичный файл. Отдельный выход должен быть отправлен исходному процессу, как только будет подтверждено, что ребенок запущен и работает.