Atur Tindakan Pemulihan untuk Terjadi Ketika Layanan Gagal


10

Saya telah menginstal banyak layanan tertulis khusus kami di kotak windows (tidak masalah jika XP, Server, Vista). Saya selalu mengonfigurasi "Restart Layanan" pada kegagalan 1, 2 dan selanjutnya. Tetapi saya belum pernah melihat pekerjaan ini; Layanan hanya berhenti (karena kesalahan atau sesuatu dalam kode) tetapi tidak me-restart.

Saya baru saja memperhatikan kotak centang "Aktifkan Tindakan Untuk Menghentikan Kesalahan". Apakah ini harus diperiksa agar pemulihan berpengaruh jika kegagalan itu disebabkan oleh kesalahan?

terima kasih, Mark.

Jawaban:


3

Jika layanan Anda berhenti karena kesalahan, yang dicatat oleh windows maka ya, Anda harus mencentang 'Aktifkan Tindakan Untuk Berhenti Dengan Kesalahan', jika tidak, itu tidak akan berfungsi.

Jika Anda tidak mencentang ini, maka hanya akan memulai kembali layanan yang berhenti karena alasan yang sah atau tidak diketahui.


1
Terima kasih - saya pikir itu. Tapi saya akan berpikir "Kesalahan" akan menjadi hal yang sama dengan "kegagalan", dan karenanya layanan harus dimulai tanpa mencentang kotak.
M Schenkel

Tampaknya agak aneh, saya setuju, karena sebagian besar alasan layanan akan gagal, Anda akan berpikir bahwa itu adalah kesalahan.
Sam Cogan

2
Tidak ada tindakan pemulihan yang dipicu pada layanan yang berhenti karena alasan "sah". Jawaban ini masih membuat kebingungan pada istilah "berhenti" dan "gagal".
matpop

3
Siapa pun di Microsoft yang menulis bahasa ini harus dicambuk tanpa henti karena ketidakmampuan mereka.
Brain2000

16

Kotak centang "Aktifkan tindakan untuk berhenti dengan kesalahan" diperkenalkan dengan Windows Vista dan Windows Server 2008, memberikan satu baris dokumentasi yang memalukan :

Pilih Aktifkan tindakan untuk berhenti dengan kesalahan untuk memicu tindakan pemulihan bahwa layanan berhenti dengan kesalahan.

The sc.exe Program juga diperbarui untuk memberikan perintah baru: failureflag. The dokumentasi menunjukkan contoh yang buruk dan tidak benar-benar berlaku untuk Windows Server 2003, tetapi memberitahu kita bahwa perintah:

Menentukan apakah tindakan pemulihan akan dipicu ketika layanan berhenti karena kesalahan.

Jadi, kotak centang dan sc failureflagdigunakan untuk mengatur bendera yang sama.
Mari kita ketik sc failureflagcommand prompt, kita akhirnya mendapatkan deskripsi yang cukup baik:

Mengubah pengaturan tanda tindakan kegagalan layanan. Jika pengaturan ini adalah 0 (default), Manajer Kontrol Layanan (SCM) memungkinkan tindakan kegagalan yang dikonfigurasi pada layanan hanya jika proses layanan berakhir dengan layanan dalam kondisi selain SERVICE_STOPPED. Jika pengaturan ini adalah 1, SCM memungkinkan tindakan kegagalan yang terkonfigurasi pada layanan jika layanan memasuki status SERVICE_STOPPED dengan kode keluar Win32 selain 0 sebagai tambahan untuk penghentian proses layanan seperti di atas. Pengaturan ini diabaikan jika layanan tidak memiliki tindakan kegagalan yang dikonfigurasi.

Deskripsi serupa dapat ditemukan di sini .
Jadi, jawaban yang benar untuk pertanyaan awal adalah: tindakan pemulihan yang dikonfigurasi selalu berlaku ketika layanan Anda tidak berhenti dalam status SERVICE_STOPPED. "Aktifkan tindakan untuk berhenti dengan kesalahan" harus diperiksa jika Anda perlu mengaktifkan tindakan pemulihan juga ketika layanan Anda memasuki status SERVICE_STOPPED, asalkan kode keluar bukan 0 (kesalahan).


2
Kudos untuk jawaban yang sangat membantu!
Tim Lovell-Smith
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.