Estoy llamando al siguiente comando a través de bash pero no crea ninguna sesión de pantalla:
screen -d -m time python3 myscript.py ; sleep 1
cuando lo hago screen -r
dice que no hay pantalla para reanudar. Sin embargo, cuando lo intento:
screen -d -m time python3; sleep 1
Luego, al hacerlo screen -r
, se muestra la consola Py.
¿Qué mal estoy haciendo?
Respuesta1
screen -d -m time python3 myscript.py
se ejecuta python3 myscript.py
dentro de una sesión de pantalla y luego sale. Si no ve esa sesión de pantalla más tarde, es porque el script ya salió.
Parece que esperabas myscript.py
correr más tiempo. Algo debe haber salido mal. Redirija la salida (especialmente los errores) a un archivo para ver qué está pasando. O mantenga la sesión ejecutando otro programa.
screen -d -m time sh -c 'python3 myscript.py; echo $?; sleep 999999999'
Si el script no funciona cuando lo ejecuta directamente desde la pantalla, pero funciona si lo ejecuta desde un shell interactivo, es muy probable que esto indique dos cosas:
myscript.py
depende de alguna configuración, probablemente una variable de entorno. No es autónomo.- Estás configurando esta configuración en el lugar equivocado. Probablemente esté configurando una variable de entorno en
.bashrc
, que solo la leen los shells interactivos. Establezca variables de entorno en.profile
su lugar; Este archivo se lee cuando inicias sesión.