На самом деле ошибка была в 4.0 и уже исправлена.
Вы видите эффект параметров multios
, специфичных для zsh
. Если вы хотите увидеть такое же поведение, как и в других оболочках, вам нужно отключить эту опцию setopt nomultios
или вызвать zsh
как sh
.
С multios
, в cmd1> & 3 | cmd2
, вы перенаправляете стандартный вывод cmd1
на и 3
, а канал - на cmd2
.См. Как я могу передать только stderr в zsh? для получения более подробной информации.
killall
ожидает подстроку имени программы в качестве аргумента. Чтобы убить процесс по его идентификатору, используйте kill
.
Вы можете напрямую убить все процессы, в которых открыт файл, с помощью команды fuser
.
fuser -k /dev/ttyUSB9
Используйте команды ниже, чтобы убить 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
Поскольку у вас уже есть идентификаторы процессов , вы можете просто использовать kill
, т.е.
kill -TERM 13395 14410
(я бы предложил сначала отправить обычный SIGTERM
, прежде чем нажимать кнопку SIGKILL
.)
Команда killall
, используемая в системах Linux, убивает процесс по имени, как и pkill
. Однако в других системах, таких как Solaris, killall
убивает все (как часть процедуры выключения), о чем следует помнить, если вы когда-нибудь будете их использовать.
Я решил следующие проблемы, связанные с последовательным портом в 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, тогда возникает только эта проблема.