Autore Topic: Distruggere gli oggetti creati? E Shutdown del pc senza essere root(RISOLTO)  (Letto 2035 volte)

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Ciao a tutti, ho il seguente dubbio.
Tutti gli oggetti creati (connessioni, result, stringhe, array, ecc..)
alla chiusura del programma vanno distrutti  o non c'è nè bisogno.
Da quanto ho visto mi sembra che non è necessario farlo esplicitamente ma ci pensa il programma direttamente. Ciao e grazie.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Distruggere gli oggetti creati???
« Risposta #1 il: 23 Giugno 2009, 17:32:49 »
Solitamente le variabili (e quindi tutto ciò che ruota intorno) sono dichiarate all'interno di una funzione...non appena il flusso del programma abbandona quella funzione le variabili al suo interno di svuotano....pertanto non c'è bisogno di distruggere nulla..però non so che la stessa cosa valga per le variabili dichiarate a livello globale...

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Distruggere gli oggetti creati???
« Risposta #2 il: 23 Giugno 2009, 17:44:04 »
Gambas non contiene un garbage collector, un gestore autonomatico della memoria occupata dagli oggetti, ma utilizza un  contatore delle referenze ai vari oggetti per liberare le risorse non appena un oggetto o una locazione di memoria non sono più puntati da nessuna referenza.

http://gambasdoc.org/help/def/gc
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Distruggere gli oggetti creati???
« Risposta #3 il: 24 Giugno 2009, 23:09:48 »
Grazie per le riposte.
Avrei un altra domanda da porvi.
Vorrei far eseguire al mio programma uno shutdown programmato del pc, avevo pensato di usare il comando shell, ma purtroppo il comando shutdown necessita dei privilegi di root. Avreste qualche dritta da darmi per aggirare il problema. Ciao.

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Distruggere gli oggetti creati???
« Risposta #4 il: 27 Giugno 2009, 00:24:12 »
Eseguire comandi con i permessi di root diviene un po' un problema....
Cosa fai: passi la tua password a sudo dall'applicazione e poi esegui il comando? Potrebbe essere, ma memorizzare una password in chiaro non è una bella cosa. Potresti cifrarla in un file e decifrarla prima di eseguire il comando, ma diventa una scocciatura...

Non so che dirti... potresti installarti gshutdown, che è un piccolo programmino che esegue reboot e shutdown sia a comando sia posticipati, sia in modalità grafica che da riga di comando, e non richiede la password di root. Basta dare da Gambas
Codice: [Seleziona]

SHELL "gshutdown -c " & chr$(34) & "shutdown" & chr$(34) & " -n"

per spengere il computer all'istante.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Distruggere gli oggetti creati???
« Risposta #5 il: 28 Giugno 2009, 02:55:49 »
Grazie della rispota, ma non credo che la utilizzerò, voglio che sia il mio programma a spegnere il pc e non che debba richiamare un altro programma. piuttosto non implemento questa funzione. Vediamo se riesco a richiamare lo spegnimento da gnome. Ti faccio sapere se trovo una soluzione. Ciao e grazie ancora.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Distruggere gli oggetti creati???
« Risposta #6 il: 28 Giugno 2009, 12:02:27 »
ATTENZIONE: ciò che sto per scrivere è possibile attuarlo solo su ubuntu e derivate!

Puoi usare gksudo se vuoi...altro non è che un interfaccia grafica per sudo.

Ad esempio, dando il comando

Codice: [Seleziona]
SHELL "gksudo|shutdonwn -h now"


non ai altro che richiamare prima gksudo (la solita finestrella che esce quando dvi immetter la password di root) e ciò che immetti viene utilizzato come input per shutdown

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Distruggere gli oggetti creati???
« Risposta #7 il: 28 Giugno 2009, 14:25:49 »
Ciao Ceskho, ho provato a fare come mi hai suggerito, ma mi si apre la finestra di gksudo che rimane in attesa del comando.
Per quello che devo fare io non và bene, deve spegnermi il pc direttamente.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Distruggere gli oggetti creati???
« Risposta #8 il: 28 Giugno 2009, 15:18:33 »
Infatti come ti ho detto gksudo è un modo per aggirare il problema della password scritta in chiaro...

un altro metodo (sempre e solo per ubuntu però) è quello di inserire il comando shutdown tra i sudoers: questo ti permetterebbe di lanciare un programma o un comando (che solitamente necessita dei privilegi di root) come se non ne avesse bisogno....solo che questa cosa dovrebbe farla l'utente finale del tuo programma o dovresti permetterla tu mediante codice dal tuo software....

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Distruggere gli oggetti creati???
« Risposta #9 il: 25 Luglio 2009, 12:03:19 »
Ciao, ho trovato i comandi da eseguire nella shell per spegnere o riavviare il pc senza bisogno dei privilegi di root.
i comandi sono i seguenti:

gnome-power-cmd reboot
gnome-power-cmd shutdown

Ovviamente solo per desktop manager gnome.
Forse anche kde avra qualcosa di simile. Ciao.

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
A me risulta gnome-power-cmd.sh
Visita il mio sito personale: http://www.leonardomiliani.com

g.paolo

  • Visitatore
Probabilmente mi manca qualche repo di ubuntu, perchè il comando suggerito non si trova!!!?

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Quello di Leo mi pare uno script e non un comando....forse lui per qualche motivo ha quel file....

g.paolo

  • Visitatore
Risposta sufficientemente chiara, molte grazie!

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Su ubuntu 9.04 i comandi che ho riportato funzionano, non so se per altre distro la cosa cambi. ciao.