উইন্ডোজ পরিষেবা হিসাবে নোড.জেএস কীভাবে ইনস্টল করবেন?


130

আমি নোড.জেএস এক্সিকিউটেবল ডাউনলোড করেছি । আমি কীভাবে উইন্ডোজ পরিষেবা হিসাবে চালানো যেতে পারি? আমি স্ট্যান্ডার্ড নোড.জেএস ইনস্টলার ব্যবহার করতে পারি না, যেহেতু আমার একযোগে নোড.জেএস এর একাধিক সংস্করণ চালানো দরকার।

উত্তর:


187

পার্টিতে দেরীতে, তবে নোড-উইন্ডোজও কৌশলটি করবে।

এখানে চিত্র বর্ণনা লিখুন

এটিতে সিস্টেম লগ ইন অন্তর্নির্মিত রয়েছে।

এখানে চিত্র বর্ণনা লিখুন

কোড থেকে স্ক্রিপ্ট তৈরির জন্য একটি এপিআই রয়েছে, যেমন

var Service = require('node-windows').Service;

// Create a new service object
var svc = new Service({
  name:'Hello World',
  description: 'The nodejs.org example web server.',
  script: 'C:\\path\\to\\helloworld.js'
});

// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
  svc.start();
});

svc.install();

এফডি: আমি এই মডিউলটির লেখক।


3
দ্বিতীয় যে "দুর্দান্ত"। আমি কেবল আপনার রেডমি নির্দেশাবলী অনুসরণ করেছি এবং এটি সরাসরি বাক্সের বাইরে কাজ করেছে - খুব বিরল! আপনি কেবল একটি জিনিসই রেডমিতে যুক্ত করতে চান: সিএলআই-তে তৈরি জেএস স্ক্রিপ্টটি কীভাবে চালানো যায়: যেমন> নোড সেট_আপ_উইন_সার্ভিস.জেএস ...
মাইক রডেন্ট

@ কোরি এই মডিউলটি ব্যবহার করে কোনওভাবেই আমি জেএক্সোর প্যাকেজটিকে পরিষেবা হিসাবে চালাতে পারি ?
মধুর

@ মাধুর - তাত্ত্বিকভাবে, এটি কার্যকর হতে পারে তবে আমি এটি পরীক্ষা করার পরিকল্পনা করি নি এবং করি না। নোড-উইন্ডোজ একটি র‌্যাপার.জেএস ফাইল ব্যবহার করে যা পর্যবেক্ষণ / পুনঃসূচনাগুলির জন্য দায়ী। এটি কেবলমাত্র শিশু প্রক্রিয়া হিসাবে নোড স্ক্রিপ্টটি চালু করে। এক্সিকিউটেবল পাথ (যেমন নোডের পরিবর্তে জেএক্স) কনফিগার করাও সম্ভব। সুতরাং, তাত্ত্বিকভাবে, আপনি সম্ভবত এটি করতে পারেন, তবে আপনি কী ধরণের কোঁকড়ানো সম্ভাব্যতার মধ্যে যেতে পারেন তা আমার কোনও ধারণা নেই।
কোরি

@ কোরি আমার কাছে একটি সহজ এইচটিপি নোড অ্যাপ রয়েছে তবে এটি এই পরিষেবাটি ব্যবহার করে চলতে পারে না বলে মনে হয়। এটি ইনস্টল হয় এবং সূক্ষ্ম শুরু হয়, তবে এটি অবিলম্বে বন্ধ হয়ে যায়। কোন সাহায্যের প্রশংসা হবে স্যার! ইভেন্ট দর্শক কোনও ত্রুটি দেখায় না, তবে একটি সতর্কতা দেখায়: চাইল্ড প্রক্রিয়া [50732 - সি: \ প্রোগ্রাম ফাইলগুলি ode নোডজস ode নোড.এক্সে --হোমোনি "সি: \ ব্যবহারকারী me lib \ wrapper.js "-f" C: \ dev \ Node \ abs_tips \ server.js "-l" NODE ABS Tips "-g 0.25 -w 1 -r 3 -an] 0 দিয়ে সমাপ্ত
মেককভ

@ মেচকভ - ০ দিয়ে সমাপ্তি মানে একটি সফল প্রস্থান। আপনি নোড-উইন্ডো ছাড়া সফলভাবে স্ক্রিপ্টটি চালাতে পারবেন?
কোরি

40

আমি জিনিসটি এতটাই দরকারী বলে খুঁজে পেয়েছি যে এর চারপাশে মোড়ক ব্যবহারের জন্য আমি আরও সহজতর তৈরি করেছি ( এনপিএম , গিথুব )।

এটি ইনস্টল করা হচ্ছে:

npm install -g qckwinsvc

আপনার পরিষেবা ইনস্টল করা:

qckwinsvc

prompt: Service name: [name for your service]
prompt: Service description: [description for it]
prompt: Node script path: [path of your node script]
Service installed

আপনার পরিষেবা আনইনস্টল করা হচ্ছে:

qckwinsvc --uninstall

prompt: Service name: [name of your service]
prompt: Node script path: [path of your node script]
Service stopped
Service uninstalled

ধন্যবাদ, খুব সহজ !! চতুর, এটি আমার পক্ষে কাজ করে (10 64 বিট জিতে)
ফুরকান

“এনপিএম ইআরআর! asyncWrite কোনও ফাংশন নয় "" এনপিএম ইআরআর! pna.nextTick কোনও ফাংশন নয় ”
টিমভি

ধন্যবাদ, এটি ব্যবহার করা খুব সহজ।
এনরিক ফ্লোরস

27

এনএসএসএম পছন্দ করবেন না কারণ এটি ধরে নিয়েছে যে এটি নন-সসিং কারণ এটি হোস্ট করা অ্যাপ্লিকেশন ক্র্যাশটি পরিচালনা করে, তাই এটি হস্ট অ্যাপ্লিকেশন চুষানো actually মাইক্রোসফ্টকে মাইক্রোসফ্ট বলেই সাধারণভাবে দোষ দেওয়া পছন্দ করবেন না।
ফেলিস পোলানো

2
@ ফিলিপোল্লানো এনএসএসএম এটি নন-সাকিং বলে ধরে নিয়েছে কারণ এটি হোস্টিং অ্যাপ্লিকেশনটিকে পর্যবেক্ষণ করে, শ্রাবণীর মতো অন্যান্য সমাধানগুলির বিপরীতে যা চালানো অবস্থায় মারা যায়, এমনকি যদি মোড়ক প্রক্রিয়াটি মারা যায় তবে।
জর্জেন স্টেইনব্লক

@ জারজেনস্টেইনব্লক এটি হ'ল যা আমি বলেছিলাম: হোস্টেড অ্যাপ্লিকেশন
চুষছে

2
@ ফিলিপোল্লানো একটি হোস্টেড অ্যাপ্লিকেশন প্রস্থানটি নেসেকারি এর অর্থ খারাপ কিছু নয়। কথাটি হ'ল: এনএসএসএম বাস্তব পরিষেবা রাষ্ট্রকে প্রতিফলিত করে (বা প্রতিফলিত করতে পারে) সঠিক পরিষেবা রাষ্ট্র যাতে অন্যান্য সার্ভিস ম্যানেজারের মতো চলমান রাষ্ট্রকে ধরে নেওয়ার পরিবর্তে পরিষেবাটি তদারকি করা যায় (একজন ব্যবহারকারী হিসাবে আমি হোস্ট করা প্রক্রিয়াটিকে মেরে ফেলতে পারি এবং শ্রোয়ারি এখনও প্রদর্শিত হবে) চলমান অবস্থায় পরিষেবা)।
জর্জেন স্টেইনব্লক

16

এই ব্লগ থেকে

পরবর্তী, আমি নোডকে আইআইএসের মতো একটি পরিষেবা হিসাবে হোস্ট করতে চেয়েছিলাম। এইভাবে এটি আমার মেশিনটি দিয়ে শুরু হবে, পটভূমিতে চালানো হবে, ক্রাশ হয়ে গেলে যদি স্বয়ংক্রিয়ভাবে পুনরায় চালু হয় এবং আরও কিছুক্ষণ আগে।

এই জায়গায় নাস - চিকিত্সা পরিষেবা ব্যবস্থাপক, এনএসএম ছবিতে প্রবেশ করে। এই সরঞ্জামটি আপনাকে উইন্ডোজ পরিষেবা হিসাবে একটি সাধারণ .exe হোস্ট করতে দেয়।

আপনার নোড অ্যাপ্লিকেশনটির একটি পরিষেবাটি হিসাবে সেটআপ করতে আমি যে কমান্ডগুলি ব্যবহার করেছি সেগুলি এখানে প্রশাসকের মতো আপনার সিএমডি খুলুন এবং নিম্নলিখিত আদেশগুলি টাইপ করুন:

nssm.exe install service_name c:\your_nodejs_directory\node.exe c:\your_application_directory\server.js
net start service_name

14

আমি সরাসরি প্রশ্নের সমাধান করছি না, তবে এমন একটি বিকল্প সরবরাহ করছি যা আপনার প্রয়োজন আরও নোড.জেএস ফ্যাশন উপায়ে পূরণ করতে পারে।

কার্যকরীভাবে প্রয়োজনীয়তাগুলি হ'ল:

  1. পটভূমিতে লজিক (অ্যাপ) চলমান রয়েছে
  2. যুক্তি শুরু / থামাতে সক্ষম হবেন
  3. সিস্টেম বুট হয়ে গেলে স্বয়ংক্রিয়ভাবে যুক্তি শুরু করুন

এই প্রয়োজনীয়তাগুলি একটি প্রসেস ম্যানেজার (প্রধানমন্ত্রী) ব্যবহার করে এবং প্রসেস ম্যানেজারকে সিস্টেম স্টার্টআপে শুরু করার মাধ্যমে সন্তুষ্ট হতে পারে। উইন্ডোজ বান্ধব দুটি ভাল প্রধানমন্ত্রী হ'ল:

প্রধানমন্ত্রীকে স্বয়ংক্রিয়ভাবে শুরু করতে, সবচেয়ে সহজ উপায় হল "এট স্টার্টআপ" ট্রিগার দিয়ে একটি নির্ধারিত টাস্ক তৈরি করা:

এখানে চিত্র বর্ণনা লিখুন


আপনি যদি pm2স্টার্টআপে একটি ব্যাচ স্ক্রিপ্ট ব্যবহার শুরু করার চেষ্টা করেন, পরিবেশের ভেরিয়েবলগুলি অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন বা এটি কার্যকর হবে না। এখানে আলোচনা করা হয়েছে: github.com/Unitech/pm2/issues/1079
স্টিম্পওয়ার্ড

@ স্টেপ পাওয়ার্ড কীভাবে পিএম 2_কে কোনও পথ দেবেন?
চরণ তেজ

0

প্রক্রিয়া পরিচালক + + কাজের সূচি পদ্ধতির আমি পোস্ট এক বছর আগে কেউ বন্ধ সেবা ইনস্টলেশনের সঙ্গে ভাল কাজ করে। তবে সম্প্রতি আমি আইপিসির মাধ্যমে একে অপরের সাথে কথা বলে অনেক ছোট পরিষেবা দিয়ে একটি মাইক্রো-পরিষেবা ফ্যাশনে সিস্টেম ডিজাইন করা শুরু করেছি। সুতরাং প্রতিটি পরিষেবা ম্যানুয়ালি কনফিগার করা অসহনীয় হয়ে উঠেছে।

ম্যানুয়াল কনফিগারেশন ছাড়াই পরিষেবাগুলি ইনস্টল করার লক্ষ্যে, আমি সার্মান তৈরি করেছি , একটি আদেশ npm i -g sermanহিসাবে এক্সিকিউটেবলকে ইনস্টল করার জন্য একটি কমান্ড লাইন সরঞ্জাম (এর সাথে ইনস্টল ) করুন। আপনাকে যা লিখতে হবে (এবং কেবল একবার লিখতে হবে) এটি কার্যকর করার সাথে সাথে একটি সাধারণ সার্ভিস কনফিগারেশন ফাইল। চালান

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 machine-wide.
   -->
  <persistent_env name="FOO_SERVICE_PORT" value="8989" />
</service>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.