De acuerdo a la docs para Unix «pantalla» comando, se puede configurar en .screenrc para iniciar con un montón de incumplimiento de las pantallas, cada una ejecutando un comando que usted especifique.

Aquí está mi cofig:

# Default screens
screen -t "shell_0"  1
screen -t "autotest" 2 cd ~/project/contactdb ; autotest

Que no se ejecute la comprobación automática de comandos. La ventana donde yo estoy tratando de ejecutar autotest sólo cierra al instante cuando empiezo a screen.

Yo también lo he probado con sólo…

screen -t "autotest" 2 cd ~/project/contactdb

Mismo resultado.

También probé…

screen -t "autotest" 2 ls

Mismo resultado no demasiado.

Cuál es el secreto para conseguir que se ejecute un comando en una pantalla de inicio?

InformationsquelleAutor Ethan | 2009-02-12

6 Comentarios

  1. 21

    Su programa está siendo ejecutado (bueno, excepto el cd), es sólo que está ejecutándose sin un padre, shell, así que tan pronto como se complete, se sale y listo.

    Usted podría hacer:

    screen -t "autotest" 2 bash -c 'cd ~/project/contactdb ; autotest'

    Genera dos proyectiles, pero la vida probablemente vaya.

  2. 16

    Intente esto:

    $ screen -S 'tailf messages' -d -m tailf /var/log/messages

    Luego más tarde, usted puede hacer:

    $ screen -ls
    1234.tailf messages

    Seguido por:

    $screen -r 1234
    • También puede seguir con: $screen -r tailf que es mucho más fácil de usar y elimina la necesidad de -ls
  3. 7

    Esto podría ayudar pero podría no ser completamente lo que usted desea.

    Poner «zombie az» o «defzombie az» como la primera línea de su .screenrc. «az» puede ser cualquiera de las 2 teclas que quieras. Ahora, cuando una pantalla debería cerrar (comando termine de ejecutarse, por ejemplo), que en realidad no cerrar; golpear ‘a’, se cierra, golpear ‘z’ se vuelve a ejecutar el comando conectado a la pantalla.

    He encontrado que en la pantalla manual del usuario.

  4. 5

    También puede «cosas» de caracteres en la pantalla, como si los hubiera escrito.

    He aquí cómo usted puede hacer que con su ejemplo:

    
    screen -t "shell_0"  1
    
    # create the following screen in the desired dir, instead of cd-ing afterwards :)
    chdir ~/project/contactdb
    screen -t "autotest" 2
    
    # (without this sometimes screens fail to start correctly for me)
    sleep 5
    
    # paste some text into screen number 2:
    select 2
    stuff "autotest2"
  5. 4

    He aquí cómo la mina se ve. Parece que funciona bien. Creo que el paréntesis podría ser la causa del problema o de la pantalla no se abre una ventana si el comando «autotest» no existe.

    screen -t zsh 1
    screen -t emacs 2 emacs -nw
    screen -t mutt 3 mutt
    monitor on
    screen -t mc 4 mc -s
    screen -t elinks 4 elinks
  6. 0

    Aquí es como yo lo haría.

    screen -t shell_0
    chdir ~/project/contactdb
    screen -t autotest autotest

    La anterior parece ser evaluados en el procedimiento por la pantalla. Primero debemos establecer una nueva pantalla con el título shell_0. Ya dimos ninguna de las otras opciones, el directorio actual de trabajo será la de los padres de la shell o el directorio home del usuario. Nosotros, a continuación, establezca el directorio por defecto para las nuevas pantallas para ~/project/contactdb. A continuación, vamos a establecer una nueva pantalla de ejecución de la autotest comando.

    La ventana número (n) es opcional, generalmente se omite.

Dejar respuesta

Please enter your comment!
Please enter your name here