Найти и завершить процесс, использующий последовательный порт.

На самом деле ошибка была в 4.0 и уже исправлена.

Вы видите эффект параметров multios , специфичных для zsh . Если вы хотите увидеть такое же поведение, как и в других оболочках, вам нужно отключить эту опцию setopt nomultios или вызвать zsh как sh .

С multios , в cmd1> & 3 | cmd2 , вы перенаправляете стандартный вывод cmd1 на и 3 , а канал - на cmd2 .См. Как я могу передать только stderr в zsh? для получения более подробной информации.

4
04.04.2017, 15:47
4 ответа

killall ожидает подстроку имени программы в качестве аргумента. Чтобы убить процесс по его идентификатору, используйте kill.

Вы можете напрямую убить все процессы, в которых открыт файл, с помощью команды fuser.

fuser -k /dev/ttyUSB9
12
27.01.2020, 20:48

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

sudo kill -9 13395

sudo kill -9 14410

, если вы хотите уничтожить все (/ dev / ttyUSB9) одной командой, используйте команду ниже

sudo pkill -9 ttyUSB9

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

ps -ef | grep ttyUSB9

Чтобы указать количество идентификаторов запущенных процессов. затем используйте следующие команды

ps -ef | grep ttyUSB9 | wc -l

1
27.01.2020, 20:48

Поскольку у вас уже есть идентификаторы процессов , вы можете просто использовать kill, т.е.

kill -TERM 13395 14410 

(я бы предложил сначала отправить обычный SIGTERM, прежде чем нажимать кнопку SIGKILL.)

Команда killall, используемая в системах Linux, убивает процесс по имени, как и pkill . Однако в других системах, таких как Solaris, killall убивает все (как часть процедуры выключения), о чем следует помнить, если вы когда-нибудь будете их использовать.

1
27.01.2020, 20:48

Я решил следующие проблемы, связанные с последовательным портом в Ubuntu 18.04, следующим образом:

Проблема 1 :Не удается открыть /dev/ttyACM0 :Отказано в доступе
Решение :Предоставьте разрешения на чтение/запись в последовательный порт с помощью этой терминальной команды ---> sudo chmod a+rw /dev/ttyACM0Здесь замените порт tty на соответствующий порт Ubuntu.

Проблема 2 :Не удалось открыть /dev/ttyACM0 (порт занят)Решение :Эта проблема возникает, когда последовательный порт занят или уже занят. Так что отключите занятый последовательный порт с помощью команды ---> fuser -k /dev/ttyACM0. Здесь замените порт tty на соответствующий порт Ubuntu.

Проблема 3 :Плата в /dev/ttyACM0 недоступна Решение :В этом случае ваш последовательный порт в меню инструментов будет выделен серым цветом. Я много гуглил для этого, но ни одно из решений не сработало для меня. Наконец, я попробовал другую плату Arduino и USB-разъем, и это сработало для меня.Итак, если у вас старая плата arduino (, ее можно решить с помощью необходимых драйверов )или неисправной платы arduino, тогда возникает только эта проблема.

0
27.02.2021, 16:19

Теги

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