Da quale servizio dovrei fare dipendere il mio?


1

Voglio aggiungere una dipendenza al mio servizio in modo che tenti di avviarsi solo dopo l'avvio della maggior parte dei servizi di Windows. Qualcuno può raccomandare un servizio del genere che è improbabile che sia stato disabilitato per motivi di sicurezza sui siti aziendali. Poiché il mio servizio necessita di servizi di rete attivi e funzionanti, voglio assicurarmi che il mio inizi dopo questi. Questo servizio può anche essere distribuito in ambienti non aziendali, quindi sto cercando un servizio adatto che è improbabile che sia stato disabilitato dall'utente finale.

Risposte:


2

Utilizzare l' Utilità di pianificazione di Windows per avviare l'applicazione. Non aggiungere una dipendenza ad esso. Avrebbe senso se l'applicazione avesse effettivamente una tale dipendenza. Ma poiché questa non è una dipendenza formale, non è la cosa giusta da fare.

Inoltre, non è possibile garantire l'ordine di esecuzione dei servizi di Windows . Solo coloro che hanno regole di dipendenza si eseguono su un ordine specifico. Tutti gli altri no. Ciò significa che nel corso di diversi riavvii, l'ultimo servizio di Windows da eseguire può variare.

Al contrario, sotto l'Utilità di pianificazione è possibile impostare l'attività in modo che venga eseguita solo se un utente ha effettuato l'accesso, eseguirlo una sola volta e creare un trigger per ritardare l'esecuzione dell'attività di alcuni secondi.

10 o 20 secondi sono sufficienti per garantire che l'attività venga eseguita per ultima o prossima all'ultima, impostandola per essere eseguita solo dopo che un utente ha effettuato l'accesso.


È tuttavia possibile cercare i registri del Visualizzatore eventi come base per una regola dell'utilità di pianificazione. "Esegui solo dopo che questo evento è stato attivato".


L'utilità di pianificazione è un pezzo di merda. Non dipenderei da esso per nulla. Sei molto meglio di metterlo solo negli elementi di avvio, o in qualche altro hack, piuttosto che dipendere dall'utilità di pianificazione.
Satanicpuppy,

1

Dici che il tuo servizio "necessita di servizi di rete attivi e funzionanti". Ma davvero? Ha solo bisogno che i vari servizi relativi all'IP siano in esecuzione anche se non hanno un link o un indirizzo IP valido?

Oppure il tuo servizio si aspetta davvero di essere in grado di connettersi istantaneamente a un servizio esterno proprio quando viene avviato? E se sì, cosa succede se quel servizio esterno non funziona? Cosa succede se ci sono problemi di connettività di rete da qualche parte lungo il percorso? Si arrende, va in crash o si ferma?

Nella mia esperienza il più delle volte quando le persone scrivono servizi e provano a renderli dipendenti da altri servizi integrati, quello che stanno facendo è cercare di evitare di dover scrivere il codice di gestione degli errori corretto. Non so che cosa effettivamente fa il tuo servizio, quindi non posso offrire consigli su come gestire la moltitudine di modi in cui la connettività di rete non funzionerebbe anche se i servizi locali sono attivi e funzionanti. Ma dovresti davvero pensare al motivo per cui ritieni che il tuo servizio abbia bisogno di questa dipendenza. Non esiste un modo migliore per scriverlo in modo da poter gestire con garbo la condizione in cui la rete non è disponibile?


0

Vorrei suggerire il servizio di Windows Update. È molto improbabile che sia stato disabilitato.

Su Vista e Windows 7 è persino definito come "Automatico (avvio ritardato)", quindi inizierà bene dopo tutti gli altri servizi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.