কিভাবে নোড.জেএস এ প্রস্থান করবেন


উত্তর:


2373

গ্লোবাল processঅবজেক্টের exitপদ্ধতিটি কল করুন :

process.exit()

ডক্স থেকে:

process.exit ([কোড])

নির্দিষ্ট সঙ্গে প্রক্রিয়া শেষ code। বাদ দেওয়া থাকলে প্রস্থান 'সাফল্য' কোডটি ব্যবহার করে 0

একটি 'ব্যর্থতা' কোড সহ প্রস্থান করতে:

process.exit(1);

নোড চালানো শেলটি প্রস্থান কোড হিসাবে দেখা উচিত 1


5
শুধু কিছু যোগ করতে চান। আপনি যদি কোনও অনুরোধ পরিচালনা করছেন, আপনার অনুরোধটিও উচিত end()। অন্যথায়, এটি কেবল স্তব্ধ হয়ে যাবে।
পিক্সেলফ্রেইক

126
@ পিক্সেলফ্রেইক, exitমোটেই বিভ্রান্তিকর নয়। নোড কীভাবে কাজ করে সে সম্পর্কে আপনি বিভ্রান্ত। নোডকে সার্ভার হিসাবেই ভাবেন। এটি যেমন প্রয়োজন ঠিক তেমন আপ হয় নি যেমন পিএইচপি অ্যাপাচি-এর মতো একটি ওয়েব সার্ভারের মধ্যে রয়েছে। এমনকি ওয়েব সার্ভারগুলির সাথে নোডের কিছু করার দরকার নেই! এটি কিছু জাভাস্ক্রিপ্টের জন্য কেবল একটি হোস্ট, দরকারী জিনিসগুলি করার জন্য কিছু নিফটি বিল্ট-ইন লাইব্রেরি সহ।
ব্র্যাড

6
@ ব্র্যাড এবং পিএইচপি একটি সাধারণ উদ্দেশ্য ভাষা। এটি mod_phpঅ্যাপাচি দিয়ে চালানোর বা ব্যবহার করার দরকার নেই । আপনি পিএইচপি-তে কোনও এইচডিডি পুনরায় প্রতিস্থাপন করতে পারেন নোডের মতো আপনি যদি সত্যিই চান বা দ্রুতগতিতে যেমন নোডে করতে পারেন তেমন আরও বুদ্ধিমান / মানক পদ্ধতি ব্যবহার করেন।
বিনকি

38
দয়া করে মনে রাখবেন process.exit()হয় বাঞ্ছনীয় নয় , বর্ণনা অনুযায়ী নিচের এই উত্তর
AndreasPizsa

409

শুধু একটি নোট যে ব্যবহার অনুশীলন সুপারিশ করা process.exit([number])হয় না

প্রসেস.এক্সিট () কল করা প্রক্রিয়াটিকে যত দ্রুত সম্ভব প্রস্থান করতে বাধ্য করবে এমনকি যদি এখনও অ্যাসিক্রোনাস অপারেশনগুলি এখনও পুরোপুরি সম্পন্ন না হয়ে থাকে তবে প্রসেস.স্টডআউট এবং প্রসেস.স্টার্ডার সহ পুরোপুরি শেষ হয়নি।

বেশিরভাগ পরিস্থিতিতে, প্রসেস.এক্সিট () কে স্পষ্টভাবে কল করা প্রয়োজন হয় না। ইভেন্ট লুপে কোনও অতিরিক্ত কাজ মুলতুবি না থাকলে নোড.জেএস প্রক্রিয়াটি নিজে থেকে প্রস্থান করবে। প্রসেস.এক্সিটকোড বৈশিষ্ট্যটি প্রসেসটি সুক্ষভাবে প্রস্থান করা হলে কোন প্রস্থান কোডটি ব্যবহার করবেন তা প্রক্রিয়াটি জানাতে সেট করা যেতে পারে।

উদাহরণস্বরূপ, নিম্নলিখিত উদাহরণটি প্রসেস.এক্সিট () পদ্ধতির অপব্যবহারের চিত্রিত করে যা স্টাডআউটে মুদ্রিত ডেটা কাটা এবং হারাতে পারে:

// This is an example of what *not* to do:
if (someConditionNotMet()) {
  printUsageToStdout();
  process.exit(1);
}

এটি সমস্যাযুক্ত হওয়ার কারণ হ'ল নোড.জেএস-এ প্রসেস.স্টটআউটে লেখার সময় কখনও কখনও অ্যাসিনক্রোনাস হয় এবং নোড.জেএস ইভেন্ট লুপের একাধিক টিকের উপরেও এটি হতে পারে। কলিং প্রসেস.এক্সিট () তবে স্টাডাউটে অতিরিক্ত অতিরিক্ত লেখার আগে প্রক্রিয়াটি প্রস্থান করতে বাধ্য করে।

প্রসেস.এক্সিট () কে সরাসরি কল করার পরিবর্তে কোডটি প্রসেস.এক্সিটকোড সেট করে এবং ইভেন্ট লুপের জন্য কোনও অতিরিক্ত কাজের সময়সূচী এড়িয়ে প্রক্রিয়াটিকে প্রাকৃতিকভাবে প্রস্থান করার অনুমতি দেয়:

// How to properly set the exit code while letting
// the process exit gracefully.
if (someConditionNotMet()) {
  printUsageToStdout();  
  process.exitCode = 1;
}

31
এটি এখন পর্যন্ত সেরা উত্তর। অন্যান্য উত্তরগুলি নোডটি প্রস্থান করার আগে মুলতুবি ইভেন্টগুলিকে সঠিকভাবে প্রক্রিয়া করতে না দেবে, অত্যন্ত দুঃখজনক :(
5:30 এ জব্রাহাম

3
সম্মতি জানানো হয়েছে, এর আরও উর্ধ্বতন হওয়া উচিত! আমার একটি নোড স্ক্রিপ্ট ছিল যা শেলজস.এক্সেকের মাধ্যমে একাধিক শিশু প্রসেসগুলি বন্ধ করে দিচ্ছিল এবং আমি চাইছিলাম যে শিশুদের কোনও প্রক্রিয়া ব্যর্থ হলে আমার সামগ্রিক স্ক্রিপ্টটি ত্রুটি থেকে বেরিয়ে আসার কোড দিয়ে ফিরে আসে। প্রসেস.এক্সিটকোড = 1 এক্সিকিউটিভ কলব্যাকগুলিতে দুর্দান্ত কাজ করেছে (যেখানে কেবল শিশুদের প্রক্রিয়া শেষ হওয়ার আগে সেখানে প্রসেস.এক্সিট (1) কল করা মূল স্ক্রিপ্ট থেকে বেরিয়ে আসবে!)
নিক

15
আমি এই উত্তরটি ব্যবহার করে দেখেছি যে আমার প্রক্রিয়াটি আসলে কখনই বের হয় না। এটি সিটিআরএল-সি করতে হয়েছিল।
jcollum

33
তাত্ক্ষণিক প্রক্রিয়া এবং মুলতুবি ইভেন্টের সমাপ্তির জন্য অনেকগুলি ব্যবহারের কেস রয়েছে। ঠিক কি process.exit()জন্য উদ্দীষ্ট।
ডমিনিক সেরিসানো

6
এটি কোনও প্রসারীর সেরা উত্তর নয় কারণ এটি প্রশ্নের উত্তর দেয় না। পরিবর্তে, এটি কোনও নোডেজ প্রোগ্রামের জন্য কোড প্রবাহকে কীভাবে বিকাশ করা যায় তার সেরা অনুশীলন দেয়।
anon58192932

365

সরকারী nodejs.org ডকুমেন্টেশন থেকে:

process.exit(code)

নির্দিষ্ট কোড সহ প্রক্রিয়াটি শেষ করে। বাদ দেওয়া থাকলে প্রস্থানটি 'সাফল্য' কোড 0 ব্যবহার করে।

একটি 'ব্যর্থতা' কোড সহ প্রস্থান করতে:

process.exit(1);

9
@ অ্যালিসন হ্যাঁ, বা আরও স্পষ্টভাবেcode = 0; process.exit(code);
ডাব্লুপিআরএল

7
এটি কি সত্য যে আপনি যদি প্রস্থান করছেন, আপনি সম্ভবত এর মান সম্পর্কে চিন্তা করবেন না code?
আরমান্ড

8
@ অ্যালিসন একটি ভাল ধারণাটি process.exit()0-র কোড ডিফল্ট হিসাবে কোনও পরামিতি ছাড়াই
জেরেমি মরিটিজ

2
@ আরমান্ড আপনি সঠিক - কোডটি কেবল একটি পরিবর্তনশীল, এবং এই ক্ষেত্রে পরামিতিটি কী তা নির্দেশ করতে ব্যবহৃত হয়। সুতরাং .exit (0) উদাহরণটি করে যা কিছু করে।
জেরার্ড ওনিল

23
@ আরমান্ড কোডটি আপনার জন্য নয়, এটি আপনার কোড যা চালিয়েছে তার জন্য এটি। উদাহরণস্বরূপ, যদি আপনি process.exit(0);এটি দিয়ে প্রস্থান করেন এবং এটি দিয়ে চালনা করেন তবে node exit_0.js && echo 'success'"সাফল্য" বলবে। আপনি যদি বাইরে বেরিয়ে আসা_1.js তৈরি করেন process.exit(1);এবং চালনা করেন তবে node exit_1.js && echo 'success'এটি "সাফল্য" বলবে না যেহেতু আপনার প্রক্রিয়াটি শূন্যহীন (যা শেলের "ব্যর্থতা" বা "অস্বাভাবিক প্রস্থান" নির্দেশ করে) দিয়ে বেরিয়েছে। এছাড়াও, আপনি বনাম চালিয়ে $?গেলে আপনি বিভিন্ন মান দেখতে পাবেন (আপনি কাজটি করে এবং পরে যাচাই করতে পারেন )। node exit_1.jsnode exit_0.jsnode exit_1.jsecho $?
মিশুতে

276

আপনি যদি কোনও ইউনিক্স টার্মিনাল বা উইন্ডোজ কমান্ড লাইনে থাকেন এবং নোড REPL থেকে প্রস্থান করতে চান তবে হয় ...

  • চাপুন Ctrl+Cদুবার , বা
  • লিখুন .exitএবং এন্টার টিপুন, বা
  • একটি লাইনের শুরুতে Ctrl+ টিপুন D(কেবল ইউনিক্স)

14
নোটের বাইরেও, ম্যাক বা লিনাক্সের Ctrl + D শর্টকাটটি আপনি যে মুখোমুখি হবেন প্রায় সব শেল এবং আরপিএলগুলির উপর কাজ করে, মাইএসকিউএল এবং পোস্টগ্রিএসকিউএল এর মতো ডাটাবেসের শেল এবং যেমন প্রোগ্রামিং ভাষার জন্য আরপিএল পাইথন, পিএইচপি এবং রুবি। আমি কখনও ব্যবহৃত শেলগুলি থেকে বেরিয়ে আসার একমাত্র পদ্ধতি।
মার্ক আমেরিকা 23'15

2
জন্য nodeREPL, প্রস্থান Ctrl + D: একটি প্রমিত আচরণ, তাই এটি আরো Windows এ কাজ করে।
অ্যালান

Ctrl + C টিপুন (এমনকি একটি ম্যাকেও!)
প্রিন্স


79

এটা তোলে কারণে আপনি প্রস্থান Node.js প্রক্রিয়া সম্মত হন উপর নির্ভর করে, কিন্তু কোনো ক্ষেত্রে process.exit()হয় বিবেচনা সর্বশেষ অপশনটি । ডকুমেন্টেশন থেকে একটি উদ্ধৃতি:

এটি লক্ষণীয় গুরুত্বপূর্ণ যে কলিং process.exit()প্রক্রিয়াটি যত তাড়াতাড়ি সম্ভব প্রস্থান করতে বাধ্য করবে এমনকি যদি এখনও অ্যাসিক্রোনাস অপারেশনগুলি এখনও সম্পূর্ণরূপে সম্পন্ন হয় নি, এমনকি I / O ক্রিয়াকলাপ process.stdoutএবং এর সাথে সম্পূর্ণভাবে সম্পন্ন হয়নি process.stderr

বেশিরভাগ পরিস্থিতিতে, process.exit()স্পষ্টভাবে কল করা প্রয়োজন হয় না is ইভেন্ট লুপে কোনও অতিরিক্ত কাজ মুলতুবি না থাকলে নোড.জেএস প্রক্রিয়াটি নিজে থেকে প্রস্থান করবে। process.exitCodeসম্পত্তি প্রক্রিয়া যার প্রস্থান কোড যখন প্রণালী থেকে প্রস্থান করা অত্যন্ত শৃঙ্খলার ব্যবহার করতে বলতে নির্ধারণ করা যাবে।

আপনি নোড.জেএস প্রক্রিয়া থেকে বেরিয়ে আসতে ইচ্ছুক হতে পারেন এবং কেন আপনার এড়ানো উচিত সে সম্ভাব্য কারণগুলি কভার করুন process.exit() :

কেস 1 - কার্যকর কার্যকর (কমান্ড লাইন স্ক্রিপ্ট)

স্ক্রিপ্টটি যদি শেষের দিকে পৌঁছে যায় এবং নোড ইন্টারপ্রেটারটি প্রস্থান না করে, এটি নির্দেশ করে যে কিছু অ্যাসিঙ্ক অপারেশন এখনও মুলতুবি রয়েছে। process.exit()এই সময়ে প্রক্রিয়া সমাপ্তি জোর করা ভুল । প্রত্যাশিত উপায়ে বেরিয়ে আসা থেকে আপনার স্ক্রিপ্টটি কী রয়েছে তা বোঝার চেষ্টা করা ভাল । এবং আপনি এটি নিষ্পত্তি করার সময়, আপনি ব্যবহার করতে পারেনprocess.exitCode কল করার প্রক্রিয়াতে কোনও ফলাফল ফেরত করতে পারেন।

কেস 2 - বহিরাগত সংকেতের কারণে সমাপ্তি (সাইন ইন / সিগন্টর / অন্যান্য)

উদাহরণস্বরূপ, যদি আপনি দয়া করে কোনও এক্সপ্রেস অ্যাপ বন্ধ করতে চান । কমান্ড লাইন স্ক্রিপ্টের বিপরীতে, এক্সপ্রেস অ্যাপটি নতুন অনুরোধগুলির জন্য অপেক্ষা করে, অসীমভাবে চলতে থাকে keeps process.exit()এখানে একটি খারাপ বিকল্প হবে কারণ এটি পাইপলাইনে থাকা সমস্ত অনুরোধগুলিকে বাধা দিতে চলেছে। এবং তাদের মধ্যে কিছু অ-আদর্শবান হতে পারে (আপডেট, ডিলিট)। এই অনুরোধগুলি সার্ভারের পাশে সম্পূর্ণ হয়েছে কি না তা ক্লায়েন্ট কখনই জানতে পারবেন না এবং এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা অসঙ্গতির কারণ হতে পারে। একমাত্র ভাল সমাধান হ'ল HTTP সার্ভারকে নতুন অনুরোধগুলি গ্রহণ করা বন্ধ করতে এবং মুলতুবি থাকাগুলি শেষ হওয়ার জন্য অপেক্ষা করতে বলা server.close():

var express = require('express');
var app = express();
var server = app.listen(80);

process.on( 'SIGTERM', function () {
   server.close(function () {
     console.log("Finished all requests");
   });
});

যদি এটি এখনও প্রস্থান না করে - কেস 1 দেখুন।

কেস 3 - অভ্যন্তরীণ ত্রুটি

এটি throwএকটি ত্রুটি থেকে সর্বদা ভাল , আপনি একটি দুর্দান্ত বিন্যাসযুক্ত স্ট্যাক ট্রেস এবং ত্রুটি বার্তা পাবেন। উচ্চ স্তরের কোড সর্বদা সিদ্ধান্ত নিতে পারে যে তারা ত্রুটি ( catch) পরিচালনা করতে পারে বা এটি প্রক্রিয়াটি ক্র্যাশ করতে দেয়। অন্যদিকে, process.exit(1)নীরবে প্রক্রিয়া শেষ করবে এবং এ থেকে পুনরুদ্ধারের কোনও সুযোগ থাকবে না। এটি কেবলমাত্র "উপকার" হতে পারে process.exit(), আপনি নিশ্চিত হতে পারেন যে প্রক্রিয়াটি সমাপ্ত হবে।


4
আশ্চর্য প্রতিক্রিয়া। Process.exit()বেশিরভাগ অ্যাপ্লিকেশনগুলির জন্য বড় ওভারকিলের মতো দেখাচ্ছে। আমি পিএইচপি'র ডাই () ফাংশনের সমতুল্য সন্ধান করছিলাম ... আরও মত:throw new Error('die msg')
আভাডাটা

যদি কারও কাছে একগুচ্ছ কোড থাকে যা শাটডাউন অনুরোধ না পাওয়া পর্যন্ত অবিচ্ছিন্নভাবে কার্যকর করার কথা, তবে ইভেন্টগুলি ব্যবহার করে কোডের প্রয়োজনীয়তা ছাড়াই শাটডাউন অনুরোধের প্রতিক্রিয়াতে সাবস্ক্রিপশন ছেড়ে দেওয়া যেতে পারে এমন ইভেন্টগুলি নিবন্ধকরণের জন্য এমন কোনও দুর্দান্ত কনভেনশন রয়েছে কি? বা শাটডাউন করার অনুরোধকারী কোডটির একে অপরের সম্পর্কে নির্দিষ্ট জ্ঞান আছে? দুর্ভাগ্যক্রমে, আমি কল্যান্ডা-সাজ্টা বাস্তবায়নের একমাত্র উপায়টি মনে করতে পারি যে কোনও ইভেন্টের নিবন্ধভুক্ত কোডের যে কোনও টুকরাও একটি মোড়ক তৈরি করতে পারে যাতে এটি নিবন্ধন করার জন্য একটি ক্লোজার অন্তর্ভুক্ত থাকে।
সুপারক্যাট

26

REPL (কমান্ড লাইন)

  • দুবার টিপুনctrl + c

  • লিখুন .exitএবং এন্টার টিপুন

স্ক্রিপ্ট ফাইল

process.exit(code)

নোড সাধারণত কোড 0 দিয়ে প্রস্থান করে যখন অ্যাসিঙ্ক অপারেশনগুলি আর মুলতুবি থাকে।

process.exit(1) একটি ব্যর্থতা কোড সহ প্রস্থান করার জন্য ব্যবহার করা উচিত his এটি আমাদের অনুমান করতে দেয় যে নোড সুদৃশ্যভাবে বন্ধ হয়নি এবং বন্ধ করতে বাধ্য হয়েছিল।

অন্যান্য প্রস্থান কোড আছে

3 - অভ্যন্তরীণ জাভাস্ক্রিপ্ট পার্স ত্রুটি (খুব বিরল)

5 - ভি 8 জাভাস্ক্রিপ্ট ইঞ্জিনে মারাত্মক ত্রুটি

9 - অবৈধ যুক্তি

সম্পূর্ণ তালিকার জন্য নোডের প্রস্থান কোডগুলি দেখুন


12

আমার একটি আবেদন রয়েছে যা আমি চেয়েছিলাম:

  1. ব্যবহারকারীর একটি ইমেল প্রেরণ করুন
  2. একটি ত্রুটি কোড সহ প্রস্থান করুন

আমাকে process.exit(code)একটি exitইভেন্ট হ্যান্ডলারের দিকে ঝুঁকতে হয়েছিল, অন্যথায় মেল পাঠানো হবে না যেহেতু process.exit(code)সরাসরি কল করা অ্যাসিক্রোনাস ইভেন্টকে হত্যা করে।

#!/usr/bin/nodejs
var mailer = require('nodemailer');
var transport = mailer.createTransport();
mail = {
  to: 'Dave Bowman',
  from: 'HAL 9000',
  subject: 'Sorry Dave',
  html: 'Im sorry, Dave. Im afraid I cant do <B>THAT</B>.'
}
transport.sendMail(mail);
//process.exit(1);
process.on('exit', function() { process.exit(1); });

4
আমি মনে করি যদি আপনি চান process.exitCode
জুলিয়ান ডি Bhal

রেকর্ডের জন্য: আমি যে process.exitCodeকমান্ড-লাইন সরঞ্জামটি তৈরি করছি তার জন্য আমার জন্য কাজ করার চেষ্টা করার জন্য দিনের বেশিরভাগ অংশ ব্যয় করেছি (নোড ভি ৪.৩.০-তে পরীক্ষিত)। তবে আমি এটি দলিল হিসাবে আচরণ করতে পারি না। এটি খুব ভাল একটি প্রান্ত ক্ষেত্রে হতে পারে commander- যদিও github.com/tj/commander.js/… আমাকে অবাক করে তোলে। নিশ্চিত নয় যে অন্য কেউ এই সমস্যাটি ডাব্লু / নোড 4 দেখেছেন তবে ভবিষ্যতের রেফারেন্সের ক্ষেত্রে কেবল নথিভুক্ত করছেন।
মিকর্ম্কনিল

কমান্ডারের কাছ থেকে এটি আসার সম্ভাবনা পুনরায়, আমি এটির একমাত্র ডিপ ( github.com/zhiyelee/ গ্রেসফুল-রিডলিংক/… ) এর দিকেও তাকিয়েছিলাম তবে কোনও ডাইস নেই। কেবলমাত্র সম্ভাব্য অপরাধীই সম্ভবত মনে হতে পারে: github.com/tj/commander.js/blob/… বিশেষত, বিষয়টি হ'ল আপনি সেট process.exitCode = 1করে
দিলেও

10

@Dominic হিসাবে নির্দিষ্ট, একটি uncaught ত্রুটি নিক্ষেপ পরিবর্তে কলিং ভাল অভ্যাস process.exit ([কোড]) :
process.exitCode = 1; throw new Error("my module xx condition failed");


3
"Node.js এ কীভাবে প্রস্থান করবেন" প্রশ্নের প্রসঙ্গে নেওয়া, এটি ভয়াবহ পরামর্শ। যদি প্রশ্নটি বিশেষভাবে ত্রুটি থেকে বেরিয়ে আসে কীভাবে জিজ্ঞাসা করা হত তবে আপনার পরামর্শটি আরও বেশি অর্থবোধ করবে। আমি দৃ strongly়ভাবে পরামর্শ দিচ্ছি যে আপনি আপনার প্রতিক্রিয়াটি এমনভাবে বানান যাতে বোঝা যায় যে ব্যবহারকারী আপনার পরামর্শ অনুসারে করেন, কেবল যদি তারা কোনও ত্রুটির ঘটনায় অ্যাপ্লিকেশনটি থেকে বেরিয়ে আসার চেষ্টা করছেন ।
স্টারহাউস

@rstackhouse, আমি আশা করি আপনি মধ্য দিয়ে চলে গেছে একটি uncaught ত্রুটি নিক্ষেপ যা পয়েন্ট -> nodejs.org/api/process.html#process_process_exit_code
MANN

4
নিক্ষিপ্ত সমস্যাটি হ'ল জাহান্নামের স্ট্যাক ট্রেস হিসাবে কুরুচিপূর্ণ। এই স্ট্যাক ট্রেস এড়ানোর জন্য কোনও টিপস (ব্যবহার সঠিক না হলে সিএলআই সরঞ্জামটি প্রস্থান করতে চাইলে প্রাসঙ্গিক নয়)?
MoOx

9

প্রস্থান করা

let exitCode = 1;
process.exit(exitCode)

কার্যকর প্রস্থান কোড

1 - সাধারণ ত্রুটির জন্য ক্যাচল
2 - শেল বিল্টিনগুলির অপব্যবহার (বাশ ডকুমেন্টেশন অনুসারে)
126 - অনুরোধ করা কমান্ড কার্যকর করতে পারে না
127 - "আদেশ পাওয়া যায় নি"
128 - প্রস্থান করার জন্য অবৈধ যুক্তি
128 + এন - মারাত্মক ত্রুটি সংকেত "এন"
130 - স্ক্রিপ্ট নিয়ন্ত্রণ-সি দ্বারা সমাপ্ত
255 \ * - প্রস্থান ছাড়ার স্থিতি

, আপনার উত্তর আপডেট বিবেচনা nodejs.org/api/process.html#process_process_exit_code
Cmag

7

কোড থেকে আপনি process.exit([errorcode])যেখানে [errorcode]optionচ্ছিক পূর্ণসংখ্যা ব্যবহার করতে পারেন ( 0সাফল্য নির্দেশ করার জন্য এটি ডিফল্ট)।

আপনি যদি রিড এভাল প্রিন্ট লুপ (REPL) ব্যবহার করেন তবে আপনি Ctrl+ D, বা টাইপ করতে পারেন.exit

বিকল্পভাবে, উইন্ডোজ বা লিনাক্সে আপনি Ctrl+ C, Ctrl+ ব্যবহার করতে পারেনC

ম্যাকের কমান্ডটি হ'ল Ctrl+ Z, Ctrl+Z


2
ম্যাকের উপর দুটি কন্ট্রোল সি এর কাজগুলিও কমপক্ষে আমার সাথে node --version v0.10.18
মিশথ মাথার সাথে

কন্ট্রোল-সি ইতিমধ্যে নির্ধারিত অপারেশনগুলি বাতিল করার জন্য উপস্থিত হয় না, তবে ctrl-z ম্যাকের উপর দেরি না করে প্রক্রিয়াটিকে হত্যা করে।
জুরিস


3

আমি টাইপ করে উইন্ডোজ 10 এর গিট ব্যাশ শেল থেকে আমার সমস্ত নোড প্রক্রিয়া সরাসরি মরতে সক্ষম হয়েছি taskkill -F -IM node.exe- এটি আমার কম্পিউটারে সমস্ত নোড প্রক্রিয়া একবারে শেষ করে। আমিও ব্যবহার করতে পারলাম taskkill //F //IM node.exe। কেন উভয় -এবং //এই প্রসঙ্গে কাজ নিশ্চিত না । আশাকরি এটা সাহায্য করবে!


এটি নিজেই টাস্কিলের কারণে। আপনি নিজেরাই প্রক্রিয়া হত্যা করছেন। এছাড়াও, একটি একক / যথেষ্ট।
পল স্টেলিয়ান

2

প্রক্রিয়াটি বিশ্বব্যাপী অবজেক্ট হিসাবে আপনাকে কোনও মডিউল আমদানি করতে হবে না। নিম্নলিখিত ফাংশনটি বর্তমান নোড প্রক্রিয়াটি থেকে প্রস্থান করে বা হত্যা করে।

process.exit (কোড)

process.kill (process.pid)

process.abort ()


1

কমান্ড লাইন টার্মিনালটি খুলুন যেখানে নোড অ্যাপ্লিকেশন চলছে এবং Ctrl + C টিপুন

আপনি যদি কোড থেকে নোড জেএস অ্যাপ্লিকেশনটি প্রস্থান করতে চান,

process.exit(); // graceful termination 
process.exit(1); // non graceful termination 

0

আপনি যদি নোড জেএস অ্যাপ্লিকেশন থেকে প্রস্থান করতে চান তবে লিখুন

process.exit(1)

আপনার কোডে


3
অ্যাপ্লিকেশনটিতে একটি ত্রুটি হয়েছে তা চিহ্নিত করতে 1 ব্যবহার করা হয়, যা অন্যান্য উত্তর ইতিমধ্যে পরিষ্কার করে দেয়।
হারিক

0

নোড জেতে প্রস্থানটি দুটি উপায়ে করা হয়:

  • প্রসেস.এক্সিট () স্পষ্টভাবে কল করা হচ্ছে ।
  • অথবা, যদি নোডেজ ইভেন্ট লুপটি সমস্ত কাজ দিয়ে সম্পন্ন হয় এবং কিছুই করার থাকে না। তারপরে নোড অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে প্রস্থান করবে।

কিভাবে এটা কাজ করে?

আপনি যদি প্রক্রিয়াটি থামানোর জন্য এক্সিকিউশন লুপটিকে জোর করতে চান তবে আপনি বিশ্বব্যাপী পরিবর্তনশীল প্রক্রিয়াটি ব্যবহার করতে পারেন যা ইভেন্টইমিটারের উদাহরণ । সুতরাং আপনি যখন প্রসেস.এক্সিট () কল করেন তখন আপনি বাস্তবে প্রস্থান ইভেন্টটি নির্গত করেন যা সমস্ত কাজ তত্ক্ষণাত শেষ করে এমনকি যদি এখনও অ্যাসিনক্রোনাস অপারেশন না করা হয়।

প্রসেস.এক্সিট () একটি পরামিতি হিসাবে একটি প্রস্থান কোড (পূর্ণসংখ্যা ) নেয়। কোড 0 ডিফল্ট এবং এর অর্থ এটি একটি 'সাফল্য' দিয়ে প্রস্থান করে। যদিও কোড 1 এর অর্থ এটি একটি 'ব্যর্থতা' দিয়ে প্রস্থান করুন।


0

যদি আপনি উইন্ডোজটিতে থাকেন তবে টাস্ক ম্যানেজারে যান, তারপরে প্রক্রিয়াগুলিতে যান, "নোড" নামে একটি প্রক্রিয়া সন্ধান করুন, তারপরে আপনার মাউসের ডান বোতামটি দিয়ে এটিতে ক্লিক করুন এবং তারপরে "শেষ প্রক্রিয়া" বিকল্পটি ক্লিক করুন।


-1

আপনি process.exit ([কোড]) ফাংশন ব্যবহার করতে পারেন ।

আপনি যদি 'ব্যর্থতা' ছাড়াই প্রস্থান করতে চান তবে আপনি কোডটি ব্যবহার করুন 0:

process.exit(0);

একটি 'ব্যর্থতা' কোড সহ প্রস্থান 1করতে আপনি চালাতে পারেন:

process.exit(1);

ব্যর্থতার 'ব্যর্থতা' কোডটি অ্যাপ্লিকেশনের সাথে নির্দিষ্ট। সুতরাং আপনি এটির জন্য আপনার নিজস্ব সম্মেলনগুলি ব্যবহার করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.