3 votos

¿Cómo se pueden crear varias sesiones de pantalla en el arranque en Linux?

En primer lugar, ¿cuál es la mejor manera de ejecutar los comandos en el inicio, cron? Puedo usar su en un script de shell para cambiar entre los diferentes usuarios, si es así, cómo?

¿Cómo puedo crear varios unifamiliar screen de las sesiones en el inicio? screen -A -m -d -S test ./script.sh parece que debería funcionar, pero su uso en una secuencia de comandos iniciado por cron no se ve la pantalla de las sesiones que se ejecutan después de arrancar.

Parece que la pantalla de la sesión se cierra después de que el comando termine de ejecutarse, puedo mantenerlo abierto para que yo pueda ver la salida?

Gracias!

7voto

Gilles Puntos37591

Para ejecutar un comando cuando se inicia el sistema, el horario es de @reboot en cron. Ver man 5 crontab para más detalles. Esto significa que su crontab línea debe verse como

@reboot screen -m ...

No use su para eso, poner el comando en el crontab del usuario que debe ejecutar el comando. De esa manera, el usuario puede administrar los comandos sin root de la intervención. (Pero si queremos ejecutar un comando como usuario del sistema, sin permitir que el usuario del sistema cambiar el comando por razones de seguridad, somethnig como su -c /path/to/command www-data en /etc/rc.local sería mejor).

La pantalla se cierra una ventana cuando su comando termina y termina la sesión, cuando su última ventana es cerrada. Si quieres ver la salida del guión después de terminado, ejecutar otro comando después de esperar para la entrada. Por ejemplo, dejar la ventana abierta hasta que se presione Entrar :

screen sh -c './script.sh; read'

Recuerde que la pantalla sólo se mantiene un número finito de líneas de la historia. A menos script.sh a veces requiere de la interacción, que sería mejor servido por redirigir su salida a un archivo. Si requiere de la interacción, que puede utilizar la pantalla de la log comando para enviar la salida a un archivo y, a continuación, no es un problema si la pantalla se finaliza la sesión cuando no requieren la entrada de datos).

2voto

Darth Android Puntos29212

¿Has probado screen -AmdS test bash -i ./script.sh ?

Me imagino que lo que sucede es que comienza a pantalla, que ejecuta el script, y luego cuando sale de la secuencia de comandos, pantalla termina. el bash -i parte dice pantalla lanzar bash en modo interactivo, y ha bash ejecute el script. Una vez el script hecho ejecutar, bash continuará a esperar en un símbolo del sistema, mantiene la sesión de pantalla abierta para enganchar a una vez que inicie sesión en el sistema.

1voto

CHitchcock Puntos161

Crear un script que haga lo queramos. Si cambia entre usuarios para sólo un único comando, entonces seguir adelante y utilizar su -c . De lo contrario, crear un script independiente y llame a aquél.

Entonces, para obtener el comando a ejecutar al iniciar, poner el comando para ejecutar la secuencia de comandos/etc/rc.d/rc.local

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

;