Individuare ed estrarre il PID di un programma
Da Gambas-it.org - Wikipedia.
Versione del 13 mar 2012 alle 06:08 di Vuott (Discussione | contributi) (Nuova pagina: L'argomento in questione tratta di come cercare, individuare e raccogliere il PID di un programma{1}, non lanciato dal programma .gambas con ''process''. <BR>Daremo la soluzi...)
L'argomento in questione tratta di come cercare, individuare e raccogliere il PID di un programma{1}, non lanciato dal programma .gambas con process.
Daremo la soluzione con il comando bash ps aux | grep nome_programma, e mostreremo la predetta soluzione facendo l'esempio di come impedire che il medesimo programma .gambas sia erroneamente lanciato due volte.
E', dunque, necessario ottenere il PID del programma{1}.
Public Sub Form_Open() Dim index As String Dim plura As String[] Dim a, b, c As Integer ' Otteniamo il PID dei processi (programmi) aperti, aventi il medesimo "nome_programma.gambas": Shell "ps -aux | grep " & "nome_programma" To index plura = Split(index, " ") c = plura.Count For a = 0 To c - 1 ' Cerca il riferimento al 1° programma aperto (cioè a se stesso): If Right(plura[a], 20) Like "*.gambas*" Then ' Così può passare a "Kill" la stringa, contenuta da ciascuna variabile "plura" ' "successiva" alle stringhe che si riferiscono al 1° processo (che resta così protetto), ' sino a quando non passerà la stringa contenente il PID del 2° processo che si è appena aperto: For b = a To 100 ' Non appena viene passato il PID del 2° processo, questo viene terminato: Try Shell "kill " & plura[b] Next Endif Next End
Note
[1] Attenzione ! L'intento è quello di ottenere il PID del programma in quanto processo, non della finestra del programma !