หากคุณต้องการรันแอปพลิเคชันในฐานะ Service ใน Windows OS โปรดอ่านบทช่วยสอนนี้ต่อไป เนื่องจากคุณรู้ว่าวิธีทั่วไปในการรันโปรแกรมตอนเริ่มต้น Windows คือการวางโปรแกรมในโฟลเดอร์ Windows Startup หรือรันโปรแกรมตอนเริ่มต้นโดยใช้ Windows Registry หรือเริ่มแอปพลิเคชันโดยใช้ Task Scheduler แม้ว่าวิธีเหล่านี้จะมีประสิทธิภาพในส่วนใหญ่ แต่ในบางกรณีจำเป็นต้องรันแอปพลิเคชันตอนเริ่มต้นในฐานะ Windows Service ก่อนที่ผู้ใช้จะ Login หรือมีปฏิสัมพันธ์
บทช่วยสอนนี้มีคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีสร้าง Windows Service ด้วยโปรแกรมใดๆ ใน Windows 10, 8, 7 & Server OS
วิธีรันแอปพลิเคชันใดๆ ในฐานะ Windows Service
วิธีที่ 1: รัน Application เป็น Windows Service โดยใช้ RunAsService utility
วิธีที่ 2: รัน Program เป็น Service โดยใช้ NSSM utility
วิธีที่ 1: วิธีรันแอปพลิเคชันใดๆ เป็น Windows Service ด้วย 'Run As Service' Utility
วิธีแรกในการสร้าง User-defined service จากโปรแกรมใดๆ คือการใช้ Utility "RunAsService"
1. ดาวน์โหลด เครื่องมือ RunAsService ไปยัง PC
2. ย้าย หรือ คัดลอก ไฟล์ที่ดาวน์โหลด RunAsService.exe ไปที่ Root folder ของไดรฟ์ C:\ *
* หมายเหตุ (สำคัญ): คุณสามารถวางเครื่องมือ "RunAsService.exe" ไว้ที่ตำแหน่งใดก็ได้บนดิสก์ แต่ต้องแน่ใจว่าเก็บเครื่องมือไว้ที่ตำแหน่งเดียวกัน เพื่อให้ Service ที่ติดตั้งทำงานต่อได้

3. เปิด Command Prompt as Administrator
4. ใน Command Prompt พิมพ์: cd\
5. ตอนนี้ ติดตั้งแอปพลิเคชันที่ต้องการเป็น Service โดยใช้คำสั่งต่อไปนี้: *
- RunAsService install "ServiceName" "Display-Name" "PathToExecutable"
หมายเหตุ:
1. ในคำสั่งข้างต้น ให้ แทนที่ ค่า ใน ตัวอักษรสีแดง ดังนี้:
Name: พิมพ์ชื่อสำหรับ Service ที่ต้องการสร้าง คุณสามารถใช้ Service Name เพื่อ Start หรือ Stop service ด้วยตนเองในอนาคต โดยใช้คำสั่ง "net start" หรือ "net stop"
Display Name: หากต้องการ ให้พิมพ์ชื่อที่ต่างออกไปสำหรับรายการ Windows Services นี่คือวิธีที่ชื่อ Service จะแสดงในรายการ Services หากไม่ระบุ "Display Name" ชื่อแสดงจะเหมือนกับ "ServiceName" ของ Service ที่คุณสร้าง
PathToExecutable: พิมพ์ Full path ของแอปพลิเคชันที่ต้องการรันเป็น Windows Service
ตัวอย่าง: เพื่อติดตั้งแอปพลิเคชัน "Notepad.exe" เป็น Windows Service ด้วยชื่อ "Notepad" ให้พิมพ์คำสั่งต่อไปนี้:
- RunAsService install "Notepad" "C:\Windows\System32\notepad.exe"

2. หากหลังจากรันคำสั่งข้างต้น คุณได้รับข้อความ "An app needs the .Net Framework 2.0 feature to work" ให้คลิก Download and install this feature หรือดาวน์โหลด .Net Framework 2.0 จาก Microsoft Download Center

6. หลังจากรันคำสั่ง บริการ Windows ใหม่จะปรากฏในรายการ Services ด้วยชื่อที่คุณระบุในคำสั่ง "RunAsService" เพื่อรัน Service ที่สร้างใหม่ตอนเริ่มต้น:
a. คลิกขวา ที่ Service และเลือก Properties

b. ตรวจสอบให้แน่ใจว่า Startup type ตั้งเป็น Automatic

c. รีสตาร์ท PC เพื่อทดสอบ Service *
* หมายเหตุ:
1. คุณสามารถ Start หรือ Stop Service ได้ตลอดเวลา โดยการรันคำสั่ง "net start" หรือ "net stop" ใน Command Prompt (Admin)
2. หากต้องการ Uninstall Service ที่ติดตั้งในอนาคต:
a. หยุด Service โดยรันคำสั่งนี้ใน Admin Command Prompt:
- net stop "ServiceName"
เช่น net stop "Notepad"
b. Uninstall Service โดยพิมพ์คำสั่งนี้:
- RunAsService uninstall "ServiceName"
เช่น RunAsService uninstall "Notepad"

วิธีที่ 2: วิธีรันโปรแกรมใดๆ เป็น Service โดยใช้ NSSM
วิธีที่สองในการรันแอปพลิเคชันใดๆ เป็น Service ใน Windows คือการใช้เครื่องมือ Non-Sucking Service Manager (NSSM)
1. ดาวน์โหลด NSSM
2. แตกไฟล์ ZIP ที่ดาวน์โหลด
3. เปลี่ยนชื่อ โฟลเดอร์ที่แตก (เช่น "nssm-2.24") เป็น NSSM
4. คัดลอก โฟลเดอร์ NSSM ไปที่ Root folder ของไดรฟ์ C:\
5. เปิด Command Prompt as Administrator และไปที่โฟลเดอร์ NSSM โดยพิมพ์คำสั่งต่อไปนี้ตามลำดับ (กด Enter หลังพิมพ์แต่ละคำสั่ง):
- cd\
- cd nssm
6. ตอนนี้ ตาม Windows Version (32 หรือ 64 bit) ให้ไปที่ Subfolder หนึ่งในสอง โดยพิมพ์คำสั่งที่ตรงกัน (และกด Enter)
- หากคุณใช้ 64Bit Windows พิมพ์: cd win64
- หากคุณใช้ 32Bit Windows พิมพ์: cd win32
7. ตอนนี้ พิมพ์คำสั่งต่อไปนี้: *
- nssm install

8. ในหน้าต่างที่เปิด:
8a. กดปุ่มสามจุด (tree)
ถัดจาก PATH และเลือก Executable ของแอปพลิเคชันที่ต้องการรันเป็น Service

8b. เมื่อเสร็จ พิมพ์ Name สำหรับ Service ใหม่ และคลิก Install service

8c. คลิก OK ที่ข้อความ "Service installed successfully" และเสร็จแล้ว! *
* หมายเหตุ:
1. หลังจากติดตั้ง Service ด้วย NSSM Service Installer บริการ Windows ใหม่จะปรากฏในรายการ Services ด้วยชื่อที่ระบุใน Service Name ซึ่งสามารถจัดการได้เหมือน Service อื่นๆ ของ Windows
2. เพื่อ Uninstall Service ในอนาคต:
a. ทำตามขั้นตอน 5 & 6 ด้านบน แล้วพิมพ์คำสั่งต่อไปนี้: *
- nssm remove ServiceName
* หมายเหตุ: ServiceName = ชื่อของ Service ที่คุณสร้างด้วย NSSM utility
เช่น nssm remove NOTEPAD ในตัวอย่างนี้

b. สุดท้าย คลิก Yes เพื่อ Remove Service

เพียงเท่านี้! แจ้งผมได้หากคู่มือนี้ช่วยคุณได้ โดยการแสดงความคิดเห็น โปรดกดไลก์และแชร์เพื่อช่วยผู้อื่น