Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da digitel Visualizza il messaggio
    Grazie per il link, procedura un po incasinata per me che sono alle prime armi

    Ma la mia domanda e' questa :

    Se l'output di ritorno da uno script shell lanciato da php, lo salvo come variabile, questa variabile la posso passare ad un altro script ??

    Nel mio caso ho fatto questa prova: un tasto per laciare uno script , un altro per killarlo, ma non funziona :

    <?php
    if (isset($_POST['TastoA']))
    {
    $pid = exec("nohup nomescript.sh > /dev/null 2>&1 & echo $!");
    }
    if (isset($_POST['TastoB']))
    {
    shell_exec("kill $pid");
    }
    ?>

    Il log di apache2 mi dice "undefined variable : pid" quando premo il secondo tasto

    Per caso la variabile scompare dopo il primo utilizzo di if(ISSET ???
    non so di che tasti tu stia parlando. ma fondamentalmente accade questo:

    - avvii il tuo script php che esegue il tuo nomescript.sh
    - l'esecuzione dello script continua

    quando richiami lo script per la seconda volta, premendo un tasto(?), esegui lo stesso script che non ha alcun riferimento rispetto al precedente. Normale quindi che non abbia quella variabile valorizzata.

    Aggiungo inoltre come da manuale php

    exec() esegue il comando passato da command, la funzione non invia nessun output. Restituisce semplicemente l'ultima linea dal risultato del comando. Se si ha bisogno di eseguire un comando ed avere tutti i dati passati direttamente indietro senza alcuna interferenza, usare la funzione passthru().
    quindi exec ti serve per eseguire programmi non per recuperare il pid dell'operazione. L'unico caso in cui questo potrebbe avvenire è che tu, dallo script che esegui, stampi a video, e solo quello, appunto il pid.

    Ciò non toglie che, lo script lanciato la prima volta termina e di conseguenza per usare il pid devi necessariamente passarlo in un altro modo(Sessioni o in GET)
    Ultima modifica di ciro78; 26-11-2013 a 18:56
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.