Страниц: [1]
  Печать  
Автор Тема: проблема shutdown STOPPED  (Прочитано 4545 раз)
Evgeniy52
Jr. Member
**
Offline Offline

Сообщений: 55


Просмотр профиля
« : Октября 11, 2011, 11:20:37 am »

Добрый день!

Возникла ужасная проблема, которая делает невозможным использование устройства с QNX.
Вполне возможно, я сам что-то напортачил в образе...

Итак, x86, qnx 6.4.1.
Собираю свой образ. Ничего экзотического вроде нет. Разве что запускаю из образа ksh-скрипты для проверки различных условий и запуска драйверов.
Работало все прекрасно около месяца.
И вот вчера делаю shutdown.... и все.
Устройство не перезагружается. "Висит" до сих пор.
Ввести что-либо с клавиатуры нельзя. Можно лишь переключаться между консолями (которых осталось 2 из 4-х). CTRL+C и прочее также не работает.
При этом все процессы работают нормально, насколько я могу судить.
Например, устройство доступно по сети qnet. Если запустить on -f hostname sh, то можно нормально работать с устройством.
Вот выводы некоторых утилит:

Код:
# pidin mem

..........
90161168   1 proc/boot/shutdown 255f STOPPED           12K  108K  8192(516K)*
            libc.so.3          @b0300000             468K   12K
..........           

# pidin flags
     pid name               Flags
       1 boot/procnto-instr 00019001
       2 proc/boot/slogger  00000210
       3 proc/boot/pci-bios 00000210
       4 proc/boot/pipe     00000210
       5 roc/boot/io-pkt-v4 00401210
       7 roc/boot/devb-eide 00401210
   57350 proc/boot/io-usb   00401210
  225288 proc/boot/io-hid   00401210
  225290 /boot/devc-con-hid 00000210
89124873 oc/boot/devb-umass 00400210
90161168 proc/boot/shutdown 00000280
90185739 bin/sh             00010200
90320908 proc/boot/pidin    00000200

# top
13 processes; 66 threads;
CPU states: 99.1% idle, 0.8% user, 0.0% kernel
Memory: 0 total, 141M avail, page size 4K

      PID   TID PRI STATE    HH:MM:SS    CPU  COMMAND
        5     2  21 Rcv       0:04:57   0.53% io-pkt-v4
        2     1  21 Rcv       0:00:33   0.13% slogger
 90345484     1  10 Rply      0:00:00   0.11% top
        5     3  10 Rcv       0:00:00   0.03% io-pkt-v4
    57350     2  21 Rcv       0:00:24   0.01% io-usb
    57350     3  21 Rcv       0:00:21   0.01% io-usb
        1     7  10 Run       0:00:08   0.01% kernel
   225290     1  20 Rcv       0:00:05   0.00% devc-con-hid
        5     5  20 Rcv       0:00:00   0.00% io-pkt-v4
    57350     6  10 NSlp      0:00:00   0.00% io-usb

             Min        Max       Average
CPU idle:     99%        99%        99%
Mem Avail:   141MB      141MB      141MB
Processes:    13         13         13
Threads:      66         66         66

# ps
       PID TTY          TIME CMD
  90185739 ?        00:00:00 sh
  90337292 ?        00:00:00 ps
  90161168 ?        00:00:00 shutdown
 
# ps -e
       PID TTY          TIME CMD
         1 ?        17:41:04 procnto-instr
         2 ?        00:00:34 slogger
         3 ?        00:00:00 pci-bios
         4 ?        00:00:04 pipe
         5 ?        00:05:03 io-pkt-v4
     57350 ?        00:00:47 io-usb
         7 ?        00:00:13 devb-eide
    225288 ?        00:00:01 io-hid
  89124873 ?        00:00:00 devb-umass
    225290 ?        00:00:05 devc-con-hid
  90185739 ?        00:00:00 sh
  90361868 ?        00:00:00 ps
  90161168 ?        00:00:00 shutdown
 

Как видно, shutdown находится в состоянии STOPPED. Все, что убил shutdown - это две из четырех консолей.
Насколько я понимаю, STOPPED - значит кто-то послал ему SIGSTOP. Непонятно, кто и зачем?

Чем может быть вызвана подобная ситуация с "зависанием" на shutdown и как её предотвратить?
Извиняюсь за длинный пост.
Записан
lesav
Sr. Member
****
Offline Offline

Сообщений: 262



Просмотр профиля
« Ответ #1 : Октября 11, 2011, 01:43:35 pm »

Все, что убил shutdown - это две из четырех консолей.
Насколько я понимаю, STOPPED - значит кто-то послал ему SIGSTOP. Непонятно, кто и зачем?

Видимо shutdown запущен из второй консоли, в которой он себе и выслал сигнал.
Я очень часто наблюдал такие выкрутасы. Особенно неприятно, когда приходилось идти к удаленной машине чтоб ее перегрузить несколько километров! )))

Решил запускать ватчдог перед shutdown и остановка его при загрузке системы.
Еще  можно поробовать создать скрипт reboot в котором
Код:
#!/proc/boot/ksh

PATH = /proc/boot:$PATH
LD_LIBRARY_PATH=/proc/boot:$LD_LIBRARY_PATH

startwatchdog 30
/proc/boot/shutdown


Записан

mike
QOR.Moderator
*****
Offline Offline

Сообщений: 1186


Welcome to Lunatic Asylum.


Просмотр профиля WWW
« Ответ #2 : Октября 11, 2011, 01:53:50 pm »

а если его оторвать от консоли?
Записан
Evgeniy52
Jr. Member
**
Offline Offline

Сообщений: 55


Просмотр профиля
« Ответ #3 : Октября 11, 2011, 04:32:10 pm »

Спасибо за ответы.

Видимо shutdown запущен из второй консоли, в которой он себе и выслал сигнал.

Второй консолью я вообще не пользовался. Только когда shutdown завис, то из любопытства попробовал на неё переключиться.

Насчет своего скрипта - заменителя shutdown - я тоже думал. Что-то типа :
1) запустить shutdown.
2) посмотреть, есть ли в процессах shutdown в состоянии STOPPED
3) если есть, попробовать на него slay и к п.1
Как думаете, годится такой способ?
С watchdog, наверное, лучше, но несколько сложнее в реализации.

а если его оторвать от консоли?

Простите, не понял Вас. Что Вы имеете в виду? Что-то типа
# on -f /dev/ttyx shutdown
или
# shutdown &
?

upd.
# shutdown &
приводит к тому, что shuydown оказывается в STOPPED, остальное все работает без изменений.
« Последнее редактирование: Октября 12, 2011, 02:06:08 pm от Evgeniy52 » Записан
lesav
Sr. Member
****
Offline Offline

Сообщений: 262



Просмотр профиля
« Ответ #4 : Октября 12, 2011, 06:08:56 pm »

С watchdog, наверное, лучше, но несколько сложнее в реализации.
Делов на час - два.  Главное чтобы утилита была универсальной, т.к. сторожевые таймеры на разных платах отличаются (в основном адресами регистров).

А shutdown запускается удаленно или локально ?

Попробуйте мой скрипт.  На рекавери флешке /proc/boot/reboot и /proc/boot/halt.  Они меня, вроде как, не подводили.


Записан

mike
QOR.Moderator
*****
Offline Offline

Сообщений: 1186


Welcome to Lunatic Asylum.


Просмотр профиля WWW
« Ответ #5 : Октября 13, 2011, 08:17:14 am »

Код:
nohup shutdown > /dev/null
Записан
Evgeniy52
Jr. Member
**
Offline Offline

Сообщений: 55


Просмотр профиля
« Ответ #6 : Октября 13, 2011, 03:34:49 pm »

А shutdown запускается удаленно или локально ?
Проблема возникла, когда запускал локально. Но предполагается и удаленное управление, тут-то вся фатальность и проявится)
За скрипты большое спасибо, опробую.

Код:
nohup shutdown > /dev/null
Спасибо, Попробую.
...the SIGHUP signal is set to be ignored...
А спасет ли это от STOPPED?
Записан
T_i_m_u_r_l_a_n
Участник
*
Offline Offline

Сообщений: 30


Просмотр профиля
« Ответ #7 : Апреля 22, 2015, 12:10:02 pm »

Ctrl+Alt+Shift+Backspace попробуйте.
Записан
Страниц: [1]
  Печать  
 
Перейти в: