Newsgroup: it.comp.lang.visual-basic
Titolo: esecuzione su spegnimento windows (lungo e forse complesso)

Salve
ho letto qualche thread passato sull'argomento in questione, ma alla 
fine non sono riuscito a risolvere il mio problema.
Ho un server linux (fedora 5) e diversi PC windows xp (home/pro) 
attraverso i quali devo dare la possibilità all'utente di spegnere il 
server linux.
ho creato sul linux un servizio all'avvio del sistema con il buon netcat 
(nc) in ascolto messo in loop: ogni volta che riceve qualcosa via 
ethernet su una certa porta la passa ad un altro comando (grep) che 
verifica che la stringa sia "STOP". In tal caso esegue lo shutdown -hP 
del server, altrimenti ritorna ad ascoltare. Quindi ogni volta che 
riceve qualcosa (questo aspetto è importante per capire meglio più 
sotto) si chiude, un altro programma analizza la stringa, e poi si fa 
ri-eseguire, in un loop infinito fino allo spegnimento.
Ho poi scritto un programmino in VB che all'avvio mi mostra una msgbox 
con l'avviso di ricordarsi di accendere il server, va nella icon tray 
(nascosto con l'icona impostata a vbNull), e rimane sino a quando la sua 
query_unload riceve una richiesta da vbAppWindow (quindi solo allo 
spegnimento del PC). A quel punto (dietro conferma dell'utente) deve 
inviare una stringa via ethernet al server per lo spegnimento.
soluzione 1: uso il winsock.
Problema: non riesco ad inviare dati. La colpa credo sia del winsock, 
che appena si connette (e la connessione riesce) invia qualcosa, magari 
anche solo un vbcrlf, o qualcosa del genere (non ho ancora "sniffato" 
l'ethernet...). Netcat su linux si chiude, viene verificato cosa gli è 
arrivato, poi si riapre, e quindi la connessione non è più valida, e 
quando il winsock invia la stringa "STOP", un bel messaggio di errore di 
windows mi dice che lo stato della connessione non permette l'operazione.
soluzione 2: uso netcat per windows, ed eseguo mediante un file batch il 
mio netcat con la stringa, l'ip e la porta corretta.
Problema: in debug (a pc regolarmente acceso) funziona benissimo e il 
server si spegne, MA quando windows si sta spegnendo blocca tutte le 
esecuzioni di nuove applicazioni, quindi il comando "Shell" da wisual 
basic non viene eseguito.
Morale: non so come farlo.
Avete gentilmente qualche consiglio (non vale come consiglio il 
suggerimento di mettere un monitor e tastiera al server o di togliere 
linux e passare a Microsoft :-) )
ciao e grazie
Marco F.

 linux e passare a Microsoft :-) )
Niente di tutto ciò: basta lasciare il server sempre accesso (altrimenti 
che server è???), magari con un UPS da 30 euro che trovi anche 
all'ipercoop per evitare qualche inconveniente elettrico.
Non c'è bisogno di passare a MS per questo... funziona anche con linux ;)
Ciao
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca
 

 Marco F.
non è più semplice mettere un msg all'avvio di windows.....
...anche solo il caricamento di una jpeg
"ACCENDI IL SERVER!!!"
 e mettere uno script sul server linux che ogni 5sec...o 10 o ogni
minuto....
mi fa un ping sulle macchine windows?
Se nessuna risponde si spegne?

Wodka40[Google] ha scritto:

...però per definizione "un server" che sta spento....che è?
Un server in sciopero?
Lavori alla farm di tele2???
ghghgh...questa la capisce chi ahimè è passato dall'adsl di tele2!!!

Capisco che un server spento lascia da pensare...
Ma in un piccolo ufficio, all'interno di un condominio misto uffici
(pochi) e abitazioni (tante), la prudenza non è mai troppa, e lasciare
un PC sempre acceso anche di notte, non mi piace.
inoltre è blindato all'esterno, quindi se nessuno è in ufficio, il
server deve rimanere spento.
OT: Il mio eccesso di zelo e prudenza, cmq non ha evitato che ieri sera
un fulmine mi bruciasse la mia vecchissima centralina analogica
dell'ufficio (danno da circa un miliaio di euro, ahime'...)
porca puttana (concedetemelo)
Marco F.

 Se nessuna risponde si spegne?
questa mi garba assai...
non ci avevo pensato.
certo la mia conoscenza base di bash script sarà messa a dura prova, ma
si può fare.
l'idea di un programmello in vb però mi piaceva soprattutto perchè ho
sempre la speranza di riuscire a far fare al server il wake on...
qualcosa (lan, pci, event...), ma sul mio serverino asus non ci riesco.
il mio programmello snello snello in vb quindi all'avvio del pc sveglia
by lan il server, e alla fine lo chiude. Ma questa è utopia.
BTW, provo con il ping_alive_script.sh
Stasera fa caldo.
faccio fatica a dormire.
non ho sonno.
la moglie non c'e'.
domani mattina devo quasi fare solo presenza, non è necessario che
faccia funzionare la testa
sembra quasi la notte ideale come ai vecchi tempi... io e il pc...
Marco F.

 server deve rimanere spento.
Probabilmente, allora, non hai bisogno di un server.
Hai detto che c'è sopra Linux: quindi, molto probabilmente, lo utilizzi 
più come firewall/router, che non per fileserver.
Dato che lo spengi, non lo usi certo come mail o web server :)))
Se è come penso io quindi, con 60/80 euro compri un fw/router/access point 
che ti fa le stesse funzione della macchina linux.
Il "file server", invece, lo farà uno dei PC della rete peer-to-peer.


> dell'ufficio (danno da circa un miliaio di euro, ahime'...)
ehm... intendevo "migliaio"
il tasto della "g" non prende bene :-)


zac
sigh!
http://www.depicus.com/wake-on-lan/
...ma tu vuoi farlo su linux?
e tutto autoprodotto?
un po di codice
http://www.codeproject.com/useritems/WOL.asp?df=100&forumid=211282&exp=0&select=1302439
LINUX
http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/wol-mini-howto-3.html
http://xlife.zuavra.net/columns/20050516/
etc etc

 Il "file server", invece, lo farà uno dei PC della rete peer-to-peer.
sbagliato
Per ora fa da server samba/netbios per archivio di dati da installazioni
c/o clienti (sincronizzazione files da diversi pc portatili), e da ftp
server per backup automatici (grazie all'ottimo, nonchè free, cobian
setup 8) di tutto (contabilità, sorgenti, documenti, ecc)
Doppio disco in raid 1 e backup quotidiano su un hd usb esterno.
magari a breve, tempo e buona volontà permettendo, anche mail server con
antivirus (ho già la licenza del buon AVG) e antispam (spam assassin)
Marco F.

 e tutto autoprodotto?
mi č sempre piaciuto "spippolare"... cough cough cough :-)
Marco F.

 
http://www.codeproject.com/useritems/WOL.asp?df=100&forumid=211282&exp=0&select=1302439
ehmm... non mi ero accorto che si tratta di C++.
probabilmente c'è modo di utilizzarla anche in VB, ma non sono capace.

 assassin)
Buon lavoro, allora :)


 Marco F.
Piccolo inciso mio!
assolutamente opinabile ma sperimentato sul campo in varie situazioni!
Un computer oggi...se hai accesso ad una rete di Cash & Carry
all'ingrosso costa intorno ai 300 euro senza sistema operativo....nei
300 ti ci ho messo anche 2 ventole in più di raffreddamento...
E' meglio...per tante ragioni....non ultima la legge di Murphy.....
METTERE un server su UN pc!!!
UNA macchina per il file server
UNA per il backup
UNA per l'ftp.....etc etc
Comunque vada....mi sembra assolutamente ILLOGICO che un client ACCENDA
un server!
Il contrario...al limite... NO!
Un server per definizione deve essere SEMPRE disponibile...
Se tu hai una macchina disponibile su richiesta...hai tutto fuorchè un
server!
Inoltre.....
la tua macchina sta effettuando un backup di 20Gb via lan ...o anche
sull'HD esterno...
tutti i pc si spengono...(tipico ad esempio se il server sta in una
stanza e gli operatori in un altra)..arriva una richiesta WOL di halt
-now (se ricordo bene il comando linux)...che succede al backup in
corso?
Io poi sono molto reticente all'uso di questa diavoleria del WOL.....ho
sempre paura che se la parte lan "internet" non è ben
isolata....qualcuno... anche per farmi un dispetto....mi accenda o
spenga qualcosa!
Secondo me....se ho capito bene quello che fai tu hai bisogno di
stoccare e sincronizzare degli archivi con un archivio
centralizzato....
e la tua esigenza nasce da una necessità di risparmio energetico.....
la sera alle 20.00 quando vanno via tutti...perchè tenere acceso il
"server"???
Beh se è solo per questo hai ragione.....ma costa davvero tanto allora
andare nella stanza server e scrivere "halt -now" ???
...oppure se ti fa fatica (ma un po di moto aiuta a prevenire l'infarto
lo sai?).... dal tuo pc WIN...loggarsi come admin e scrivere "halt
-now" ???
La mattina il primo che arriva accende il "server"
....ma siccome son convinto che tu vuoi accendere questa macchina solo
"quando serve"
per accenderlo il WOL...
 per spegnerlo....una telnettata come admin al server!