killall приводит некоторое время к сбою

Я полагаю, что вы можете загрузить статически связанные Busybox Binary для вашего микроконтроллера на основе ARM: http://www.busybox.net/downloads/binaries/latest/

Насколько я знаю, все двоичные файлы при условии, что здесь есть все утилиты, которые здесь описаны: http://www.busybox.net/downloads/busybox.html

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

-1
13.02.2015, 15:43
2 ответа

Если нужно убить процесс по имени, то pkill будет другой альтернативной командой

pkill "name of process"

.
-1
28.01.2020, 05:13

Это может зависеть от командной строки и имени процесса. Люди часто путают эти две вещи и задаются вопросом, почему программа не показывает или убивает то, что, по их мнению, должно было быть. Также могут быть затруднены отслеживание замененных процессов или процессов, которые меняют свое имя.

Я предполагаю, что ваша программа не имеет файла PID. На самом деле это лучший способ отслеживать процесс, потому что некоторые люди могут захотеть запустить два процесса (скажем, test и dev, используя разные файлы конфигурации). Также ваш метод предполагает, что имя процесса уникально для вашего проекта.

Для того, что вы пытаетесь сделать, вероятно, лучше подходит pkill, потому что вы можете просто дать ему имя процесса, не беспокоясь о pidof. Проблема с pidof заключается в том, что у вас есть несколько совпадающих процессов, и вы ожидаете одно целое число; вы можете сломать свой сценарий. Также, если вы используете pkill, используйте pgrep, поскольку они имеют ту же логику.

Примерно так:

#!/bin/sh

pkill processName
pgrep processName
if [ $? -eq 0 ]
then
  sleep 3
  pkill -9 processName
fi
1
28.01.2020, 05:13

Теги

Похожие вопросы