¿Cómo matar un proceso continuo iniciado desde rc.local?

3

Estoy trabajando en una Raspberry Pi con sistema operativo Raspbian (basado en Debian). Para probar agregué dicho comando en /etc/rc.local:

python /home/pi/test.py

Funciona bien a partir de este script. Pero el problema es que olvidé que hay un bucle infinito en el script, algo así como:

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

Este bucle bloquea el sistema para que arranque, así que no puedo ingresar al sistema para editar el script. Ctrl + C no funciona para matarlo. ¿Entonces me pregunto cómo matar un proceso continuo a partir de rc.local?

Skyler
fuente

Respuestas:

4

No puede eliminar el proceso de forma interactiva desde la consola, pero tiene varias opciones para evitar ejecutarlo durante el arranque.

a) Arrancar en modo de usuario único

Añadir sseparado por espacio a la línea cmdline.txten la partición de arranque (FAT). Después de arrancar, puede cambiar el nombre /etc/rc.local, hacerlo no ejecutable ( chmod a-x /etc/rc.local) o editarlo.

b) Arrancar con un caparazón en lugar de init

Anexar init=/bin/shseparados por espacio a la línea en cmdline.txt. Esto evitará el inicio de cualquier script de arranque. Entonces puede tomar las mismas medidas contra las /etc/rc.localanteriores.

c) Montar la partición de Linux en un sistema diferente

Coloque la tarjeta SD en un sistema diferente y monte la partición /etc/rc.localallí. Entonces puede tomar las mismas medidas contra las /etc/rc.localanteriores.

pabouk
fuente
0

Tengo el mismo tipo de aplicación que se reproduce infinitamente después de reiniciar. Para cualquier cambio, lo monto en otro sistema, hago los cambios y lo vuelvo a colocar en mi placa. Es la forma más fácil de hacerlo.

NitinG
fuente