3

Я работаю над Raspberry Pi с ОС Raspbian (на основе Debian). Для тестирования я добавил такую команду в /etc/rc.local:

python /home/pi/test.py

Работает нормально, начиная этот скрипт. Но проблема в том, что я забыл, что в скрипте есть бесконечный цикл, что-то вроде:

while True:
    print 'Hello"
    time.sleep(5)

Этот цикл блокирует загрузку системы, поэтому я не могу войти в систему для редактирования скрипта. Ctrl+C не работает, чтобы убить его. Вот и мне интересно, как убить непрерывный процесс, запущенный с rc.local?

2 ответа2

4

Вы не можете завершить процесс в интерактивном режиме с консоли, но у вас есть несколько вариантов, как избежать его запуска во время загрузки.

а) загрузка в однопользовательском режиме

Append s , разделенных пространством к линии в cmdline.txt в загрузочный раздел (FAT). После загрузки вы можете переименовать /etc/rc.local , сделать его неисполняемым (chmod a-x /etc/rc.local) или отредактировать его.

б) Загрузиться с оболочкой вместо init

Добавьте init=/bin/sh через пробел к строке в cmdline.txt . Это пропустит запуск любых загрузочных скриптов. Затем вы можете сделать те же меры против /etc/rc.local что и выше.

в) Смонтируйте раздел Linux в другой системе

Поместите SD-карту в другую систему и смонтируйте раздел с помощью /etc/rc.local . Затем вы можете сделать те же меры против /etc/rc.local что и выше.

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .