Официальный форум СВД Встраиваемые Системы
26 Апрель, 2024, 16:19:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Убить один из процессов с одинаковым именем  (Прочитано 858 раз)
Truefish
Пользователь

Сообщений: 27


« : 01 Ноябрь, 2018, 14:53:33 »

Здравствуйте!

есть процессы Dev.ser. запущенные командами

/bin/Dev.ser -N/dev/ser1 3f8,4 &
/bin/Dev.ser -N/dev/ser2 2f8,3 &
/bin/Dev.ser -N/dev/ser3 3e8,10 &
/bin/Dev.ser -N/dev/ser4 2e8,6 &

в sysinit.1

команда sin выдает список процессов:

26 //1/bin/Dev32.ser
27 //1/bin/Dev32.ser
28 //1/bin/Dev32.ser
29 //1/bin/Dev32.ser

я знаю, что /dev/ser4 это 29 PID
мне нужно его убить и запустить снова: /bin/Dev.ser -N/dev/ser4 2e8,6 &
у него становится PID скажем, 140

команда slay предлагает убить процесс на выбор

slay: //1/bin/Dev32.ser 26 on (y/N)?N
slay: //1/bin/Dev32.ser 27 on (y/N)?N
slay: //1/bin/Dev32.ser 28 on (y/N)?N
slay: //1/bin/Dev32.ser 140 on //1/dev/ttyp0  (y/N)?Y

как мне командой slay или kill вычислить именно нужный процесс драйвера, чтобы его перезапустить при необходимости?

При этом мне необходимо сделать это через shell скрипт.

Может быть использовать команду slay -t //dev/ttyp0 Dev32.ser ?

Или существует другой способ?

Спасибо!
Записан
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #1 : 02 Ноябрь, 2018, 12:37:34 »

Здравствуйте!

Если известен идентификатор процесса (PID), то завершить процесс можно командой kill, например, для описанного Вами случая:

Код:
# kill 29
Записан
Truefish
Пользователь

Сообщений: 27


« Ответ #2 : 02 Ноябрь, 2018, 13:10:59 »

Спасибо за ответ, я это знаю. Но мне как раз неизвестен номер процесса, а их 4. Как моя программа может его узнать?

И ещё, этот вопрос возник в связи с тем. что программа и драйвер последовательного интерфейса периодически перестают работать.
При этом перезагрузка программы не решает проблему, а убивание и запуск драйвера помогает решить проблему, что очень странно.

Может быть Вы что-то сможете подсказать?
Записан
Truefish
Пользователь

Сообщений: 27


« Ответ #3 : 02 Ноябрь, 2018, 13:11:52 »

P.S.
Записан
Олег Большаков
Легенда

Сообщений: 3140



« Ответ #4 : 02 Ноябрь, 2018, 13:25:32 »

Спасибо за ответ, я это знаю. Но мне как раз неизвестен номер процесса, а их 4. Как моя программа может его узнать?

Например, можно проанализировать вывод sin arg.

Может быть Вы что-то сможете подсказать?

Попробуйте проанализировать состояние последовательного порта (например, вывод stty) до старта программы, после старта программы, после наступления неработоспособности, после перезапуска драйвера.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2024 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 21 Февраль, 2021, 03:43:22