2012-02-22 4 views
7

ho cercato su Google, e in fabric faq anche detto usare dtach dello schermo con esso, ma non ho trovato come implementarlo? soffietto è il mio codice errato, l'SH non eseguirà come escluso è un compito nohupCOME usare l'uso del tessuto con dtach, schermo, c'è qualche esempio

def dispatch(): 
    run("cd /export/workspace/build/ && if [ -f spider-fetcher.zip ];then mv spider-fetcher.zip spider-fetcher.zip.bak;fi") 
    put("/root/build/spider-fetcher.zip","/export/workspace/build/") 
    run("cd /export/script/ && sh ./restartCrawl.sh && echo 'finished'") 

risposta

2

si può semplicemente anteporre schermo al comando che si desidera eseguire: run ("schermata di comando in esecuzione lungo")

Tuttavia, il fabric non mantiene lo stato come qualcosa di simile a quanto previsto, poiché ogni esecuzione/sudo/etc è il proprio comando sperate eseguito senza conoscere lo stato dell'ultimo comando. Es. Run ("cd/var"); run ("pwd") non stamperà/var ma la home directory dell'utente che ha effettuato l'accesso nella casella.

5

sono riuscito a farlo in due fasi:

sessione
  1. Inizio tmux sul server remoto in modalità indipendente:

    run ("tmux nuova -d -s foo")

  2. comando Invia alla sessione tmux distaccato:

    run ("tmux inviare foo.0 -t ls ENTER")

qui '-t' determina sessione di destinazione ('foo') e 'foo.0' riferiscono al numero del riquadro il comando 'ls' deve essere eseguito in.