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

    "system" funziona solo una volta?

    Salve a tutti,

    ho un problema con uno scriptino in perl per il mount dei volumi con truecrypt.
    In pratica ho creato un piccolo script con front-end grafico per il montaggio e lo smontaggio degli hidden volumes. Il problema è che la chiamata di sistema al comando di truecrypt per il montaggio funziona solo la prima volta che viene richiamato dallo script mentre le volte successive non funziona.
    Ci tengo a precisare che nel codice che di seguito posto, ottengo 2 exit status del comando diversi: la prima volta che viene eseguito il comando l'exit status è 0 mentre le volte successive è 256.. cosa sbaglio?

    sub mount
    {
    my($widget,$window) = @_;
    my $pass = $password->get_text;
    my $vol = $volume->get_text;
    my $mpoint = $mount_point->get_text;
    if ($pass eq ""){
    $output->set_text("Password errata!");
    }
    elsif($vol eq ""){
    $output->set_text("Nome Volume errato!");
    }
    elsif($mpoint eq ""){
    $output->set_text("Mount Point errato!");
    }
    else {
    $exit_status= system ("truecrypt -u $vol -p $pass $mpoint");
    print "Status comando system: $exit_status\n";
    chdir "/dev/mapper";
    open(CONTROL, "ls|");
    while (<CONTROL>){
    print "Controllo: $_";
    if ($_ =~ /truecrypt/g){
    print "$_";
    $status=1;
    print "$status\n";
    }
    }
    close(CONTROL);
    if ($status == "1"){
    $output->set_text("\"$vol\" montato in $mpoint\n");
    $status="";
    }
    else {$output->set_text("Impossibile montare \"$vol\"");}
    }
    print "$pass , $vol , $mpoint\n";
    print "stato: $status\n";
    }

    Aggiungo che molte print che potrebbero risultare inutili le ho aggiunte per fare un po' di debug e cercare di risolvere il problema da solo ed, inoltre, la subroutine "mount" viene richiamata da un'istanza pulsante della GUI (gtk2).

    NN riesco davvero a capire dove sbaglio... mi aiutate?

    Grazie,
    Stefano alias zeno78200

  2. #2
    Salve a tutti,

    ho scoperto che o Perl o le librerie GTK2 hanno qualche problema a gestire la chiamata system() su sistemi operativi per le architetture a 64 bit. Infatti, dopo aver sbattuto la testa per una intera giornata, ho provato lo stesso script su una macchina a 32 bit e tutto funziona alla perfezione! :master:

    Spero di avere il tempo di capire se il problema è dell'interprete Perl o delle lib. GTK2... vi farò sapere!

    Ciao,
    Stefano alias zeno78200

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 © 2025 vBulletin Solutions, Inc. All rights reserved.