Problemas con subprocess
Publicado por Alvaro (1 intervención) el 01/10/2017 13:08:03
Buenos días y gracias de antemano.
He estado intentando generar un código con subprocess.call() pero por algún motivo que desconozco cuando lo lanzo desde la shell de raspberry y selecciono una de las opciones que permite el programa, éste termina. Dejo el código a continuación por si alguien detecta el fallo.
Así mismo, aprovecho para comunicar otra duda: ¿es posible lanzar subprocess.call("sudo nano etc/ddclient.conf", shell = True)?
Gracias por vuestra ayuda
He estado intentando generar un código con subprocess.call() pero por algún motivo que desconozco cuando lo lanzo desde la shell de raspberry y selecciono una de las opciones que permite el programa, éste termina. Dejo el código a continuación por si alguien detecta el fallo.
Así mismo, aprovecho para comunicar otra duda: ¿es posible lanzar subprocess.call("sudo nano etc/ddclient.conf", shell = True)?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#Importar clases para lanzar comandos de bash
import sys
import subprocess
#Inicia el programa
fin = True #Para terminar el bucle while cuando fin = False
print("")
print("")
print(" Bienvenido a NAS_PI")
#Muestra las opciones del programa
while fin:
print("")
print("Seleccione una de las siguientes opciones:")
print("1: Iniciar Servidor.")
print("2: Parar Servidor.")
print("3: Comprobar estado.")
print("4: Configurar ddclient")
print("0: Salir")
print("")
print("")
#Entrada de datos y procesado
opcion = input("Introduzca la opcion: ")
if opcion == "1":
proceso = subprocess.call("/etc/init.d/ddclient start", shell = True)
print(proceso)
print("NAS_PI conectado")
elif opcion == "2":
proceso = subprocess.call("/etc/init.d/ddclient stop", shell = True)
print(proceso)
elif opcion == "3":
proceso = subprocess.call("/etc/init.d/ddclient status", shell = True)
print(proceso)
elif opcion == "4":
proceso = subprocess.call("sudo nano etc/ddclient.conf", shell = True)
print(proceso)
else:
fin = False
sys.exit()
Gracias por vuestra ayuda
Valora esta pregunta
0