Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Script già running: differenze tra [solaris /bin/sh] e [linux /bin/dash]

    Buongiorno a tutti per iniziare.

    Ho la necessita di scrivere uno script che come prima attività controlli che un'altra istanza di se stesso non sia già girando e non permetta di proseguire.

    Il tutto funziona correttamente su SunSolaris /bin/sh
    codice:
    #!/bin/sh
    daemon="`basename $0`"
    pidlist=`pgrep $daemon | grep -v $$`
    if [ -n "$pidlist" ]; then
    	echo "Process $daemon is running with PID $pidlist"
    else
    	echo "Process $daemon not running"
    fi
    exit
    Non funziona altrettanto correttamente con Ubuntu 11.10 poichè la shell sh è stata rimpiazzata dalla dash ed anche se nessun altra istanza di se stesso (escludendo $$), la variabile $pidlist contiene comunque il pid del comando grep.

    Grazie in anticipo a tutti coloro che mi potranno esser d'aiuto.

    Ciao,
    Stefano
    Il saggio coltiva Linux poichè Windows si pianta da solo

  2. #2
    a me con la bash, ritorna sempre "running"

    e' questo il problema vero?

  3. #3
    Ciao sacarde, anzitutto grazie per aver risposto.

    Il problema di verifica con la dash (/bin/sh) ed il problema è che ho 2 output distinti.

    Per semplificare:

    codice:
    #!/bin/sh -x
    daemon="`basename $0`"
    
    echo "Comando 1";
    pgrep $daemon | grep -v $$
    
    pidlist=`pgrep $daemon | grep -v $$`
    echo "Comando 2"
    echo $pidlist
    Il primo comando non ritorna nulla (come atteso),
    l'echo invece della variabile con l'output del secondo comando ritorna un PID (presumo) del grep

    Stesso comportamento con

    codice:
    #!/bin/sh -x
    daemon="`basename $0`"
    mypid=$$
    
    echo "Comando 1";
    pgrep $daemon | grep -v $mypid
    
    pidlist=`pgrep $daemon | grep -v $mypid`
    echo "Comando 2"
    echo $pidlist
    Provo a testate contro il muro?!?

    Grazie mille!
    Ste
    Il saggio coltiva Linux poichè Windows si pianta da solo

  4. #4
    ma solaris usa la kornshell ?

    puoi installarla su linux: ksh

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.