2009-02-16 11 views
5

Ho un file batch che avvia un processo Java in un server Windows 2003. Secondo la politica di sicurezza, gli utenti di quella macchina vengono disconnessi forzatamente, se l'utente è inattivo per un certo periodo di tempo. Il problema è che quando l'utente viene disconnesso, anche il processo muore.Esecuzione di un processo Java in Windows anche dopo che l'utente è disconnesso

Ho pianificato una nuova attività (Pannello di controllo -> Attività pianificate) e selezionato l'opzione 'All'avvio del mio computer' e ho fornito i dettagli dell'account utente lì. Ma non sembra avere alcun effetto, l'utente è ancora disconnesso e il processo muore. È necessario riavviare per rendere effettiva questa modifica? E dopo il riavvio, realizzerò ciò che mi aspetto (mantenendo il processo attivo)?

In alternativa, l'esecuzione di questo processo come servizio di Windows risolve il problema? In tal caso, puoi per favore farmi sapere come posso far funzionare un programma Java o un file batch come servizio di Windows? Preferirei non utilizzare altri strumenti o librerie di terze parti.

Grazie

risposta

11

Se si desidera che venga eseguito in attività pianificate si deve assicurarsi che non si dispone di "funzionano solo quando l'utente loggato" selezionata, che di solito significa che è necessario fornire una password.

Un servizio Windows sarebbe il modo normale per farlo: lo Java service wrapper è di terze parti ma molti lo usano.

Se si desiderava davvero non utilizzare un metodo di terze parti, è possibile utilizzare svrany.exe (http://support.microsoft.com/kb/137890) su Windows NT o successivo, ma non è progettato specificamente per Java.

+0

Grazie per la risposta. Sì, non ho quel particolare set di opzioni e ho fornito i dettagli della password. Ho saputo di Java Service Wrapper in un'altra discussione. Sto pensando di usarlo come ultima risorsa. – cdoe

+0

Adoro il wrapper del servizio Java. Lo uso da un paio d'anni e funziona bene. –

+0

Il problema con l'attività pianificata è che per impostazione predefinita verrà eseguito il processo con priorità "sotto normale". Ciò potrebbe causare problemi di prestazioni quando il server è sotto carico – gerrytan

1

sto usando Java Service Wrapper per avviare il processo di Java come servizio di Windows. Immagino che funzioni similare allo srvany.exe menzionato nel post precedente.

0

Come per la mia analisi,

La soluzione Idle scriverà un programma di creazione del servizio Windows VC++ (.net) per avviare il file .bat/.exe come servizio di sistema con tutti i metodi di richiamo richiesti su SCM.

Nota: 1. Il confezionamento il processo con srvany.exe non avrebbe funzionato in quanto non ha alcuna chiamata di nuovo processo per la SCM (Service Control Manager). 2. E il servizio java Wrapper è un'API di terze parti (molte sono concesse in licenza LGPL).

Problemi correlati