কম্পিউটার টিউটোরিয়াল

Windows সার্ভিস তৈরি করার পূর্ণ গাইড

কখনও কখনো একটি অ্যাপ বা স্ক্রিপ্ট চালিয়ে রাখতে হয় আপনি লগইন থাকুন বা না থাকুন। হয়তো এটি পোর্ট মনিটর করার একটি PowerShell স্ক্রিপ্ট বা হোম নেটওয়ার্কে একটি পেজ হোস্ট করার একটি ওয়েব সার্ভার।

বিষয়টি হলো, যদি আপনি চান যে একটি প্রসেস, স্ক্রিপ্ট বা প্রোগ্রাম কম্পিউটার অন হওয়া পর্যন্ত চলে, তবে আপনাকে একটি Windows Service তৈরি করতে হবে।

Windows সার্ভিস তৈরির জন্য কী কী দরকার?

Windows 10-এ Windows সার্ভিস তৈরির জন্য কিছু পূর্বশর্ত রয়েছে:

  • কম্পিউটারে অ্যাডমিনিস্ট্রেটর অ্যাক্সেস
  • সার্ভিস হিসেবে চালাতে কিছু (PowerShell স্ক্রিপ্ট, প্রোগ্রাম, ইত্যাদি)
  • Non-Sucking Service Manager (NSSM) ইনস্টল করা

Non-Sucking Service Manager (NSSM) কী?

হ্যাঁ, এর নাম শুনলে ব্যাখ্যা করা লাগে। নামটা একটু দুর্ভাগ্যকর, কিন্তু সঠিক। Non-Sucking Service Manager (NSSM) হলো সবচেয়ে সহজ এবং বিশ্বস্ত উপায় একটি Windows সার্ভিস তৈরি করার জন্য যা অত্যন্ত কনফিগারেবল। এছাড়া এটি ফ্রি এবং ওপেন সোর্স সফ্টওয়্যার (OSS)।

NSSM ব্যবহার করা যায় Windows Command Prompt-এর মাধ্যমে বা গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) দিয়ে। এর মানে কারো ব্যবহার করতে পারে। NSSM Windows 2000 থেকে যেকোনো ভার্সনে কাজ করে। 32-বিট এবং 64-বিট ভার্সন আছে। 64-বিট কম্পিউটার ব্যবহার করলে সেটি প্রথমে চেষ্টা করুন। কাজ না করলে 32-বিট ভার্সন ব্যবহার করুন।

NSSM ডাউনলোড করা যায় ওয়েবসাইট থেকে, Git থেকে ক্লোন করে, বা Chocolatey দিয়ে ইনস্টল করে। Chocolatey হলো Windows-এর প্যাকেজ ম্যানেজার। ইনস্টলেশন পদ্ধতি নির্ভর করে আপনি কোন পথ বেছে নিচ্ছেন। NSSM-এর নির্দেশনা দেখুন। আমাদের উদাহরণে, আমরা NSSM ওয়েবসাইট থেকে ডাউনলোড করেছি এবং C:\WINDOWS\system32-এ ইনস্টল করেছি।

NSSM দিয়ে Windows সার্ভিস তৈরি করুন

এই উদাহরণে, আমরা CPU গড় লোড পার্সেন্টেজ লগ করার একটি PowerShell স্ক্রিপ্ট থেকে সার্ভিস তৈরি করব।

  1. নিচের স্ক্রিপ্টটি কপি করে log-CPULoadPercentage.ps1 নামে সেভ করুন এমন জায়গায় যা অনারা সহজে অ্যাক্সেস না করতে পারে। C:/Scripts ডিরেক্টরি তৈরি করে সেখানে রাখতে পারেন। Scripts-এ Logs নামে একটি ফোল্ডারও তৈরি করুন। স্ক্রিপ্টের প্যাথ: C:/Scripts/log-CPULoadPercentage.ps1। পরে এই প্যাথটি লাগবে।

নোট: নিচের সব লাইন যেগুলোর শেষে # সিম্বল আছে, সেগুলো কমেন্ট এবং স্ক্রিপ্টে প্রভাব ফেলে না।

CLS #ঐচ্ছিক। টেস্ট করার সময় টার্মিনাল ক্লিয়ার করার জন্য আমি এটি পছন্দ করি। #স absoluta নিশ্চিত করুন যে এই স্ক্রিপ্টের ডিরেক্টরিতে Logs নামে একটি ফোল্ডার আছে #লগ হলো যেখানে রেকর্ডগুলো সংরক্ষিত হবে। Start-Transcript -Path "$PSScriptRoot\Logs\log-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append #While loop চালিয়ে রাখে যতক্ষণ না ম্যানুয়ালি বন্ধ করা হয় While ($True){ #টাইমস্ট্যাম্প তৈরি করে জানতে মাপন কখন নেওয়া হয়েছিল $timeStamp = get-date -f yyyy-MM-h:mm:ss #সেই সময় গড় লোড পার্সেন্টেজ নেয়, তারপর ৫ সেকেন্ড অপেক্ষা করে আবার নেয়। $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5 #শুধু গড় মান আইসোলেট করে ताकি @{Average=13} এর মতো 이상한 স্ট্রিং না আসে $cpuLoadPercent = $cpuLoadPercent.Average #ফলাফল স্ক্রিনে বা এই কেসে লগে লেখে Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent" } Stop-Transcript
  1. এটি Windows Command Prompt-এ বা PowerShell-এ করা যাবে। এডমিনিস্ট্রেটর হিসেবে খুলুন।
  2. nssm install logCPUAvg কমান্ড দিন এবং রান করুন। NSSM service installer উইন্ডো খুলবে।
  1. Path: ফিল্ডের পাশের ellipses বাটনে ক্লিক করুন, powershell.exe-এ যান যা সাধারণত C:\Windows\System32\-এ থাকে। powershell.exe সিলেক্ট করুন। Path: এবং Startup directory: ফিল্ডগুলো আটোমেটিক ভরে যাবে।
  1. Arguments: ফিল্ডে নিচেরটি লিখুন: -ExecutionPolicy Bypass -NoProfile -File “C:\PathToScript\get-Script.ps1”, যেখানে শেষ অংশটি আপনার PowerShell স্ক্রিপ্টের প্যাথ এবং নাম।
  1. Details ট্যাব সিলেক্ট করুন। Windows Services ম্যানেজারে সার্ভিসটি কী নামে দেখাবে সেটি Display name: ফিল্ডে লিখুন। তারপর Description: ফিল্ডে এটি কী করে সেটি লিখুন। Startup type: হতে পারে Automatic, Automatic (Delayed Start), Manual, বা Disabled। এই এক্সারসাইজের জন্য Automatic ভালো।
  1. Log on ট্যাব সিলেক্ট করুন। This account রেডিও বাটন সিলেক্ট করুন এবং সার্ভিস চালানোর অ্যাকাউন্ট ও পাসওয়ার্ড দিন। সার্ভিস যেটার অধীনে চলে সেটি বেছে নিন। আদর্শভাবে, শুধু এই সার্ভিস চালানোর জন্য একটি Windows অ্যাকাউন্ট তৈরি করুন। এই অ্যাকাউন্টের পারমিশন শুধু সার্ভিসের প্রয়োজনীয় কাজগুলো পর্যন্ত সীমাবদ্ধ রাখুন। Local System account বেছে নেওয়া যায়, কিন্তু নিরাপত্তার কারণে এটিকে প্রস্তাব করা হয় না।

অন্যান্য কিছু ট্যাব আছে যা সার্ভিস কাস্টমাইজ করতে ব্যবহৃত হয়। এই এক্সারসাইজের জন্য ডিফল্ট ভ্যালুই যথেষ্ট। Install service বাটন চাপুন।

  1. সার্ভিস ইনস্টল হলে, Service "logCPUAvg" installed successfully! উইন্ডো দেখাবে। OK চাপে বন্ধ করুন। ইনস্টলেশন শেষ।
  1. Windows Services Manager খুলুন এবং নিশ্চিত করুন সার্ভিসটি আছে।
  1. সার্ভিসটি চালিয়ে দেখুন এটি ঠিকমতো রান হচ্ছে কিনা।
  1. সার্ভিসটি চলছে কিনা যাচাই করতে, File Explorer দিয়ে লগ সেভ হওয়ার জায়গায় যান এবং দেখুন ফাইলটি আছে কিনা।

NSSM দিয়ে Windows সার্ভিস মুছে ফেলা

হয়তো আপনার আর CPU লোড মনিটর করার দরকার নেই, তাই সার্ভিসটি মুছে ফেলতে চান। خوشখবর, NSSM এটি খুব সহজ করে দিয়েছে।

  1. Windows Services Manager-এ সার্ভিসটি বন্ধ করুন। Log CPU Average Load সার্ভিস সিলেক্ট করে টুলবারের বর্গাকার স্টপ বাটন বা বাম পাশের Stop the service লিংক চাপুন।
  1. Windows Command Prompt বা PowerShell এডমিনিস্ট্রেটর হিসেবে খুলুন।
  2. nssm remove logCPUAvg কমান্ড দিন এবং এক্সিকিউট করুন।
  1. NSSM কনফার্মেশন চাইবে। Yes সিলেক্ট করুন।
  1. সার্ভিস মুছে গেলে, Service "logCPUAvg" removed successfully! কনফার্মেশন দেখাবে। OK চাপুন এবং কাজ শেষ।

সার্ভিস ম্যানেজার চেক করা ভালো আইডিয়া যেন সার্ভিসটি আর থাকে না। যদি এখনো দেখান, তবে স্ক্রিন রিফ্রেশ করুন, চলে যাবে।

সার্ভিসগুলো এমন অ্যাপ বা স্ক্রিপ্ট চালানোর চমৎকার উপায় যেগুলো সবসময় চলতে হবে, ফেল হলে স্বয়ংক্রিয় রিস্টার্ট হবে, বা বর্তমান ইউজারের থেকে ভিন্ন পারমিশন দরকার। আপনার অ্যাপ বা স্ক্রিপ্টকে এই সব দরকার না হলে, Scheduled Task ব্যবহার করার কথা ভাবুন।

  1. উইন্ডোজ ১০ রিকভারি ড্রাইভ তৈরি করুন: ধাপে ধাপে গাইড

  2. কাস্টম উইন্ডোজ সার্ভিস তৈরি করে যেকোনো অ্যাপ্লিকেশন স্টার্টআপ-এ চালান

  3. Windows 10 Recovery Drive তৈরি করুন: ডেটা প্রোটেকশনের জন্য ধাপে ধাপে গাইড

  4. উইন্ডোজ ১০-এ রিকভারি পার্টিশন তৈরি করার ধাপে ধাপে গাইড