विंडोज में पृष्ठभूमि में प्रक्रियाओं को चलाने का कोई तरीका है? nohup विंडोज़ के लिए बराबर


जवाबों:


8

आप कमांड विंडो की पृष्ठभूमि में एक प्रक्रिया को चलाने के लिए स्टार्ट कमांड का उपयोग कर सकते हैं।

command1
command2
start command3
command4

कमांड 2 खत्म होने तक इंतजार करता है, लेकिन कमांड 4 उस कमांड 3 फिनिश का इंतजार नहीं करता है।

और यदि आपको स्वतंत्र रूप से लॉग ऑन किए गए उपयोगकर्ता को चलाने की आवश्यकता है, तो आपको एक सेवा के रूप में प्रक्रिया शुरू करने की आवश्यकता है और आप anysrv.exe का उपयोग कर सकते हैं


जहाँ तक मैं समझता हूँ कि STARTकमांड एक टुकड़ी नहीं करता है, अर्थात यह अभी भी उस प्रक्रिया का एक बच्चा है जिसने इसे बनाया है। आपके उदाहरण में इसका मतलब यह होगा कि जब भी माँ प्रक्रिया से बाहर निकलती है तो 'कमांड 3' मर जाएगी। यूनिक्स ने इसे करने के लिए 'कांटा-दो बार' के रूप में जाना, लेकिन मुझे विंडोज में एक समकक्ष का पता नहीं है।
unixhacker2010

कम से कम विंडोज 7 पर कमांड 3 मर नहीं जाएगा, उदाहरण के लिए यू एक cmd प्रॉम्प्ट "स्टार्ट नोटपैड" में मिल सकता है, फिर बाहर निकलें और नोटपैड अभी भी चल रहा होगा
Aragorn

हां, आप सही हैं। हालाँकि मैं दूसरी भाषा के भीतर से परीक्षण कर रहा था जहाँ मैं कर सकता हूँ exec(<some windows executable>)। मैं पेरेंट-चाइल्ड रिलेशनशिप के प्रोसेस एक्सप्लोरर में स्पष्ट रूप से देख सकता हूं और जो कुछ भी मैं भीतर से शुरू exec()करता हूं वह जीवित नहीं रहता है। सही है कि यह काम करने लगता है अगर मैं cmd.exeस्टार्ट मेनू से शुरू करता हूं, जहां शुरू होने पर प्रक्रिया शुरू होने पर 'सही ढंग से' अनाथ हो जाती cmd.exeहै। स्पष्ट रूप से मुझे इसे बेहतर समझने की जरूरत है। :-(
unixhacker2010

6

आप विंडोज़ सेवाओं को देखना चाह सकते हैं। कुछ उपकरण हैं जिन्हें आप किसी भी प्रक्रिया को विंडोज़ सेवा के रूप में होस्ट करने के लिए डाउनलोड कर सकते हैं। यह प्रक्रिया को विंडो स्टार्टअप पर पृष्ठभूमि में लोड करने का कारण बनता है, इसलिए बशर्ते इसके लिए आपको उपयोगकर्ता सहभागिता की आवश्यकता नहीं है जो आपको इस तरह होस्ट करने में सक्षम होना चाहिए।

विंडोज सर्वर 2003 संसाधन किट

आपके द्वारा किए जाने वाले टूल को srvany.exe कहा जाता है।


5

एक ही तरीका है, विंडोज में, कि आप एक उपयोगकर्ता द्वारा शुरू की गई प्रक्रिया को लॉगऑफ के बाद भी जारी रख सकते हैं (यानी "nohup" क्या करता है) इसे "शेड्यूल किए गए कार्य" या विंडोज सेवा के माध्यम से शुरू करना है। जब उपयोगकर्ता लॉगऑन सत्र में सभी प्रक्रियाओं को लॉग ऑफ करता है तो उसे मार दिया जाएगा।

यदि आप "शेड्यूल किए गए कार्य" विधि को आजमाने के लिए खेल रहे हैं, तो आप जानना चाहेंगे कि उन्हें प्रोग्रामेटिक रूप से कैसे बनाया जाए। Win32_ScheduledJob WMI वर्ग यह कर सकते हैं। दस्तावेज़ीकरण यहां विस्तार से दिया गया है: http://www.microsoft.com/technet/scriptcenter/guide/sas_man_rsxs.mspx?mfr=true मूल रूप से, आप ऐसा कर रहे हैं (बेशर्मी से Microsoft से चुराया हुआ):

Set objService = GetObject("winmgmts:\\.")
Set objNewJob = objService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create("Program-to-execute.exe", "ugly-formatted-time-string-per-Microsoft-docs",True ,1 OR 4 OR 16, , ,JobID)
If Err.Number = 0 Then
 Wscript.Echo "New Job ID: " & JobID
Else
 Wscript.Echo "An error occurred: " & errJobCreated
End If

"जो उपयोगकर्ता" को अनुसूचित कार्यों को बनाने की क्षमता प्रदान करने के लिए, आपको% SystemRoot% \ Tasks फ़ोल्डर पर अनुमति को संशोधित करना होगा। उस मोर्चे पर कुछ जानकारी के लिए यहां देखें: http://technet.microsoft.com/en-us/library/cc785125(WS.10).aspx


यह करने का क्या फायदा है schtasks.exe या टास्क शेड्यूलर GUI का उपयोग करके?
हेल्विक

इस API और schtasks.exe के बीच बहुत अधिक कार्यात्मक अंतर नहीं है। जीयूआई का लाभ यह है कि आप इसे प्रोग्रामेटिक रूप से कर सकते हैं।
इवान एंडरसन

0

यह सब इस बात पर निर्भर करता है कि आपका अंतिम उद्देश्य क्या है। आप केवल चलाने के लिए विकल्प के साथ एक निर्धारित कार्य चला सकते हैं यदि उपयोगकर्ता सेट पर लॉग ऑन है। आप संभवतः रिमोट मशीन से पेक्टेक का उपयोग कर सकते हैं। सेवा के रूप में प्रक्रिया को चलाने के लिए बेहतर हो सकता है। की जाँच करें इस Google खोज , यह अन्य Google खोज , इस सूत्र , और यह अन्य धागा एक समाधान के लिए अपनी खोज में कुछ संभव सुराग के लिए। अंतत: ऐसा प्रतीत होता है कि विंडोज मशीन पर nohup के बराबर कोई सटीक नहीं है ।


मेरा अंतिम उद्देश्य उपयोगकर्ता से प्रक्रिया को छिपाना है। उन खिड़कियों को छिपाएं जो यह घूमती हैं।
जादेर डायस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.