উইন্ডোজ - সিএমডি বন্ধ করার পরে পটভূমিতে রান প্রক্রিয়া


15

আমার কাছে পাইথন স্ক্রিপ্ট রয়েছে যা আমি উইন্ডোজে ব্যাকগ্রাউন্ড প্রক্রিয়া হিসাবে চালাতে চাই।

আমি লিনাক্সের সাথে এটি করতে পারি:

python script.py &

এবং তারপরে টার্মিনাল থেকে প্রক্রিয়াটি সংযোগ বিচ্ছিন্ন করুন:

disown

উইন্ডোজে, আমার এখন পর্যন্ত যা কিছু আছে তা হ'ল:

start /b python script.py

তবে, আমি যদি সিএমডি উইন্ডোটি বন্ধ করি, স্ক্রিপ্টটি চলমান বন্ধ করে দেয়। পটভূমিতে স্ক্রিপ্টটি চালিয়ে যেতে আমি এখানে কী অতিরিক্ত কোনও কমান্ড অনুপস্থিত রয়েছি?

উত্তর:


6

startইতিমধ্যে সঠিক দিক হওয়া উচিত। তবে /bএটি একই কনসোলে সংযুক্ত করে। এখন সমস্যাটি হ'ল কোনও কনসোল উইন্ডোটি বন্ধ হয়ে গেলে, এই কনসোলের সাথে সম্পর্কিত যে কোনও প্রক্রিয়াও বন্ধ হয়ে যাবে।

আপনি হয় তা startছাড়া ব্যবহার করতে পারেন /b, তারপরে এটি একটি নতুন কনসোলে চালিত হবে। আপনি যদি কনসোল উইন্ডো ব্যতীত পটভূমিতে এটি চালাতে চান তবে আপনাকে একটি ভিবিএস স্ক্রিপ্ট বা তৃতীয় পক্ষের সরঞ্জাম ব্যবহার করতে হবে: একটি সম্পূর্ণ ব্যাপী ফাইল একটি ব্যাচ ফাইল চালান

তবে, সেক্ষেত্রে আপনি আর stdout / stderr আউটপুট দেখতে পাবেন না। আপনি এটি কোনও ফাইলে পুনর্নির্দেশ করতে পারেন, cmd /c your_command > stdout.txt 2> stderr.txtকলটিতে এটি মোড়ানো এবং পূর্বোক্ত পদ্ধতিগুলির একটি (ভিবিএস স্ক্রিপ্ট, তৃতীয় পক্ষের সরঞ্জাম, ...) এর মাধ্যমে এটি শুরু করে।

বিকল্পভাবে, আপনি প্রস্থান করার আগে আপনি নিজের কনসোল উইন্ডোটিও লুকিয়ে রাখতে পারেন। আমি কেবল একটি সামান্য এক-লাইন প্রোগ্রাম লিখেছি যা হুবহু এটি করে (উত্স কোডটি মূলতঃ ShowWindow(GetConsoleWindow(), SW_HIDE)): http://share.cherrytree.at/showfile-24286/hide_current_console.exe

এইভাবে, আপনি ব্যবহার করতে পারেন start /b, এবং আপনি যখন আপনার কনসোলটি "বন্ধ" করতে চান (প্রযুক্তিগতভাবে এটি লুকিয়ে রাখবেন), আপনি দৌড়াবেন hide_current_console & exitযা কনসোলটি আড়াল করবে এবং তারপরে cmd.exe প্রক্রিয়াটি (পাইথন প্রক্রিয়া নয়) বন্ধ করবে - এক লাইনে, exitকনসোলটি ইতিমধ্যে লুকানো থাকার পরে আপনি টাইপ করতে পারবেন না ।


কোথা hide_current_consoleথেকে আসে? ডাব্লু 10 পিসিতে কাজ করে না।
বিটিসি সূত্র

1
আমি আবার এটি পরীক্ষা করেছি, এটি এখনও কাজ করে। এটি কোথা থেকে এসেছে: দয়া করে পোস্টটি আবার পড়ুন, আমি এই ফাইলটি উত্স কোডের একটি লাইন দেখিয়েছি এবং ডাউনলোড করার জন্য একটি সংকলিত আড়াল_কন্টেন_কনসোল.এক্সে ফাইলটি লিঙ্ক করেছি ...
চেরিডিটি

-2

আমি নিম্নলিখিতটি আমার জন্য ভালভাবে কাজ করতে পেরেছি:

run python script.py

1
ওহ, এবং ব্যাকগ্রাউন্ডের পরিবর্তে লিনাক্সে ( &) এবং disownআমি ব্যবহার করার পরামর্শ দেব nohup
নিক্ক

5
যে কমান্ড উইন্ডোজ প্রবেশ cmd শেল নিম্নলিখিত ত্রুটির দেয়: 'run' is not recognized as an internal or external command, operable path or batch file.
মার্কশিপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.