У меня есть малина, которая управляет светодиодами в комнате, я сделал команду, которую могу отправить по SSH (используя ярлыки iPhone). Этот код работает и анимирует светодиоды, чтобы выключить все светодиоды, мне нужно нажать ctrl+c. Есть ли способ сделать это также через SSH, даже если я возглавил его, есть некоторые проблемы, я бы переподключился к Wi-Fi после отправки 1-й команды, потому что он не отслеживает уже активные команды?
Я также могу поделиться кодом.
С уважением, Спасибо
Если вам просто нужно убить процесс, вы можете сделать это либо с помощью killall nameoftheprocess
, либо, если вы знаете идентификатор процесса, с помощью kill pid
.
Вот справочная страница kill: https://man7.org/linux/man-pages/man2/kill.2.html
Предполагая, что вы запускаете команду с помощью bash-скрипта, вы сможете получить pid с помощью $!
, затем вы можете записать его во временный файл, из которого вы можете прочитать, чтобы убить процесс.
Если вы хотите получить более подробную информацию, было бы полезно, если бы вы поделились своим кодом.
@ Directx995 Вот что значит убийство? Или ты что-то другое подразумеваешь под остановкой? Когда вы нажимаете Control + C, kill -2 PID
— это то, что происходит под капотом. Я бы снова посоветовал вам взглянуть на справочную страницу для kill, а может быть, и на эту, она содержит список сигналов, которые вы можете отправить: man7.org/linux/man-pages/man7/signal.7 .html
Когда я использую команду kill для таргетинга на python3 в качестве возврата в терминале, я «завершаюсь», светодиоды перестают анимироваться, но остаются включенными. Я думаю, мне буквально нужно как-то отправить команду ^c.
@ Directx995 Как я уже сказал, kill -2 PID
— это именно то, что делает control + c.
Извините за немного поздний ответ. @ b3nj4m1n это абсолютно идеальное решение. Я использую следующий код для вызова небольшого скрипта на малине sudo python3 /home/pi/rpi_ws281x/python/examples/allLeds_pleasentEffects.py -c
, когда я хочу его закрыть, я просто использую код, указанный выше sudo pkill -2 python3
с небольшой адаптацией к имени целевого процесса, а не к идентификатору, поскольку идентификатор может меняться. Большое спасибо
Может я не так описал. Мне не нужно убивать процесс, просто остановите его. Остановить его выполнение в терминале,