LINUX.ORG.RU

Busybox, linuxrc reboot

 ,


0

1

Есть некая системая собраная через buildroot на buisybox. /sbin/shutdown шлет сигнал 15 в 1 процес, тоесть в linuxrc. Но повесить хендлер там не получается.

_reboot() {
	echo "Reboot is being started"
	$reboot_started = 1
	killall -15 demo
	
	sleep 5
	
	echo s > /proc/sysrq-trigger 
	echo u > /proc/sysrq-trigger 
	echo s > /proc/sysrq-trigger 
	echo b > /proc/sysrq-trigger
}

trap _reboot TERM
такое впечатление что сигнал тупо игнорится. Попробывал создать скриптик и послать ему сигнал INT. Все рабоет.
#!/bin/ash

trap 'echo " - Ctrl-C signal" ' INT

while true; do
    echo "1"
    sleep 5
done

Вопрос. В чему особенность сигналов при работе с процеесом 1? Гугл ничего внятного не подсказал.

rc-файл это не init, это стартовый файл, который init вызовет на интерпретирование перед заменой на реальный init или просто один раз перед переключением на многопользовательский режим.

vodz ★★★★ ()

Если надо что-то сделать во время ребута, т.е. во время смены рунлевеля на 6, то наверное надо поместить соответствующий скрипт в /etc/rc6.d/, man SysVinit

alx777 ()
Ответ на: комментарий от Rainbow

Тогда куда /sbin/reboot отправляет SIGTERM? Там явно kill -15 1

Ну не скрипту же :) Там ведь бесконечного цикла то нет. Первый процесс — это то, что останется работать после обработки linuxrc и далее по тексту первого коментария.

vodz ★★★★ ()
Ответ на: комментарий от alx777

Если только кто-нибудь случайно не добавил «init=/bin/bash»

Да хоть случайно, хоть не случайно, в таком случае вы получите другую ситуацию, а не как у ТСа. Вам тогда руками придётся вызывать linuxrc как .bashrc, и то, если оно зациклится, то и килять будет нечем :)

vodz ★★★★ ()