এক্সিকিউটেবল ফাইল দেওয়া, একটি উইন্ডোজ পরিষেবা তৈরি করার কোনও দ্রুত উপায় আছে যা চালু হওয়ার সাথে সাথে এটি চালু করে?
এক্সিকিউটেবল ফাইল দেওয়া, একটি উইন্ডোজ পরিষেবা তৈরি করার কোনও দ্রুত উপায় আছে যা চালু হওয়ার সাথে সাথে এটি চালু করে?
উত্তর:
এক্সিকিউটেবল থেকে উইন্ডোজ পরিষেবা তৈরি করতে, আপনি ব্যবহার করতে পারেন sc.exe
:
sc.exe create <new_service_name> binPath= "<path_to_the_service_executable>"
আপনার অবশ্যই আসল exe
পথের চারপাশে উদ্ধৃতি চিহ্ন এবং এর পরে একটি স্থান থাকতে হবে binPath=
।
sc
কমান্ডের আরও তথ্য মাইক্রোসফ্ট KB251192 এ পাওয়া যাবে ।
মনে রাখবেন যে এটি কেবল কোনও এক্সিকিউটেবলের জন্য কাজ করবে না: এক্সিকিউটেবলটি অবশ্যই একটি উইন্ডোজ পরিষেবা হতে হবে ( যেমন সার্ভিস মাইন প্রয়োগ করুন ) implement পরিষেবা হিসাবে নির্বাহযোগ্য অ-পরিষেবা নিবন্ধকরণ করার সময়, পরিষেবাটি শুরু করার চেষ্টা করার পরে আপনি নিম্নলিখিত ত্রুটিটি পাবেন:
ত্রুটি 1053: পরিষেবা সময়মতো ফ্যাশনে শুরু বা নিয়ন্ত্রণ অনুরোধের প্রতিক্রিয়া জানায় না।
এমন সরঞ্জাম রয়েছে যা নির্বিচারে, অ-পরিষেবা নির্বাহী থেকে উইন্ডোজ পরিষেবা তৈরি করতে পারে, এই জাতীয় সরঞ্জামগুলির উদাহরণগুলির জন্য অন্যান্য উত্তরগুলি দেখুন।
binpath=
ডাবল কোট দিয়ে এক্সিকিউটেবল পাথটি ঘিরে রাখার পাশাপাশি স্থানটি সম্পূর্ণ ভুল, কমপক্ষে উইন্ডোজ ১০ এর জন্য, উদ্ধৃতিটি প্রয়োজনীয় এবং যদি কেবল সেই পথটিতে সাদা বর্ণের মতো বিশেষ অক্ষর থাকে। এছাড়াও, কেসিং (লো / আপার / মিক্সড-কেস) কোথাও কিছু যায় আসে না, ভেরিয়েবল নামেও খুব বেশি গুরুত্বপূর্ণ এবং displayname="my service"
প্রথম সারিতে ( Name
) এ দেখার জন্য একটি পরিষেবা তৈরি করার সময় কমান্ডলাইনে পাস করার জন্য আরও একটি গুডি services.msc
।
binPath=
আমার জন্য উইন্ডোজ
একটি পরিষেবা হিসাবে .BAT বা যে কোনও .EXE ফাইল চালানোর জন্য এনএসএসএম ( নন-সাকিং সার্ভিস ম্যানেজার ) ব্যবহার করুন ।
nssm.exe install [serviceName]
সম্প্রসারণ (কেভিন টং) উত্তর।
পদক্ষেপ 1: ডাউনলোড করুন এবং আনজিপ করুন এনএসএমএম ২.২.২৪.জিপ
পদক্ষেপ 2: কমান্ড লাইন টাইপ থেকে:
C:\> nssm.exe install [servicename]
এটি নীচের মতো জিইউআই খুলবে (উদাহরণটি ইউটি ২০০৩ সার্ভার), তারপরে কেবল এটি ব্রাউজ করুন: yourapplication.exe
আরও তথ্য: https://nssm.cc/usage
nssm.exe install [serviceName]
। এই সমাধানটি কাজ করে তবে আপনার যদি জিইউআই অ্যাপ্লিকেশন থাকে তবে এটি উইন সেরিভার ২০০3 এ কাজ করবে না। আপনি যদি পরে এটি সরাতে চান তবে ব্যবহার করুনnssm.exe remove [youservicename]
nginx
প্রয়োজনীয় এবং বিভ্রান্তিমূলক নয়। কমান্ড এটি ছাড়াও কাজ করবে। আপনি যদি কমান্ড প্রম্পট থেকে পরিষেবার নাম সরবরাহ করতে চান তবে এটি alচ্ছিক প্যারামিটার।
প্রচুর বিদ্যমান উত্তরের মধ্যে ইনস্টলের সময় মানুষের হস্তক্ষেপ অন্তর্ভুক্ত রয়েছে। এটি একটি ত্রুটি-প্রবণ প্রক্রিয়া হতে পারে। আপনার যদি অনেক এক্সিকিউটেবলগুলি পরিষেবা হিসাবে ইনস্টল করতে চান, আপনি সর্বশেষ কাজটি করতে চান তা হ'ল ইনস্টল করার সময় ম্যানুয়ালি করে।
উপরোক্ত বর্ণিত দৃশ্যের দিকে, আমি সার্মান তৈরি করেছি , একটি কমান্ড লাইন সরঞ্জাম হিসাবে একটি এক্সিকিউটেবলকে পরিষেবা হিসাবে ইনস্টল করতে। আপনাকে যা লিখতে হবে (এবং কেবল একবার লিখতে হবে) এটি কার্যকর করার সাথে সাথে একটি সাধারণ সার্ভিস কনফিগারেশন ফাইল। চালান
serman install <path_to_config_file>
পরিষেবা ইনস্টল করা হবে। stdout
এবং stderr
সব লগড হয়। আরও তথ্যের জন্য, প্রকল্পের ওয়েবসাইটটি একবার দেখুন ।
একটি ওয়ার্কিং কনফিগারেশন ফাইল খুব সহজ, যা নীচে প্রদর্শিত হয়েছে। তবে এর অনেকগুলি দরকারী বৈশিষ্ট্য রয়েছে যেমন নীচে <env>
এবং <persistent_env>
নীচে।
<service>
<id>hello</id>
<name>hello</name>
<description>This service runs the hello application</description>
<executable>node.exe</executable>
<!--
{{dir}} will be expanded to the containing directory of your
config file, which is normally where your executable locates
-->
<arguments>"{{dir}}\hello.js"</arguments>
<logmode>rotate</logmode>
<!-- OPTIONAL FEATURE:
NODE_ENV=production will be an environment variable
available to your application, but not visible outside
of your application
-->
<env name="NODE_ENV" value="production"/>
<!-- OPTIONAL FEATURE:
FOO_SERVICE_PORT=8989 will be persisted as an environment
variable to the system.
-->
<persistent_env name="FOO_SERVICE_PORT" value="8989" />
</service>
এই অতিরিক্তগুলি কার্যকর প্রমাণিত হয় .. প্রশাসক হিসাবে কার্যকর করা দরকার
sc create <service_name> binpath=<binary_path>
sc stop <service_name>
sc queryex <service_name>
sc delete <service_name>
যদি আপনার পরিষেবার নামের কোনও স্থান থাকে তবে "কোটস" এ সংযুক্ত করুন।
sc create <service_name> binpath= <binary_path>