मैं एक अलग नाम के साथ एक प्रक्रिया कैसे शुरू कर सकता हूं?


12

मूल रूप से मैं कुछ प्रक्रियाओं को गतिशील रूप से शुरू करना चाहता हूं जो अपने स्वयं के बच्चों की प्रक्रियाएं बना सकती हैं, साथ ही मैं उन प्रक्रियाओं के एक निश्चित समूह को मारना चाहता हूं जो मैंने अभी भी बनाया है।

एक तरह से मैं सोच सकता था कि एक नाम के साथ प्रक्रिया शुरू करना (एक समूह के रूप में भेद करना), फिर pkillउन्हें नाम से मारने के लिए उपयोग करें।

सवाल यह है कि एक नाम के साथ एक प्रक्रिया कैसे शुरू करें ताकि मैं pkillउन्हें नाम से मारने के लिए उपयोग कर सकूं? मैं अन्य समाधानों के लिए भी खुला हूं।


क्या आप पूछ रहे हैं कि एक प्रक्रिया को कैसे शुरू किया जाए, जो आमतौर पर उपयोग किए जाने वाले नाम से भिन्न हो ? या आप सिर्फ यह पूछ रहे हैं कि कमांड-लाइन से प्रक्रिया कैसे शुरू करें?
एलियाह कगन

प्रक्रिया का नाम लिनक्स में डिफ़ॉल्ट रूप से उसके फ़ाइल नाम के समान दिखाया गया है। मैं इसकी प्रक्रिया के नाम के रूप में इसके डिफ़ॉल्ट फ़ाइल नाम का उपयोग नहीं करना चाहता और न ही हर बार मेरे द्वारा चलाए जाने वाले फ़ाइल नाम को बदलना। इसलिए मैं एक विशिष्ट नाम के साथ प्रक्रियाओं को शुरू करना चाहता हूं जो मैं चाहता हूं ताकि मैं उन सभी प्रक्रियाओं को मारने के लिए 'pkill -f MyOwnName' का उपयोग कर सकूं जिन्हें मैंने अभी-अभी MyOwnName नाम दिया था।
कैश

जवाबों:


12

आप execशेल बिलिन का उपयोग कर सकते हैं :

bash -c "exec -a MyUniqueProcessName <command> &"

<command>वर्तमान शेल को प्रतिस्थापित करता है, कोई नई प्रक्रिया नहीं बनाई गई है, यही कारण है कि मैं कॉल करने के लिए एक नया शेल शुरू कर रहा हूं exec

तब आप इस प्रक्रिया को मार सकते हैं:

pkill -f MyUniqueProcessName

आप एक ही नाम के तहत एक से अधिक प्रक्रिया शुरू कर सकते हैं, फिर pkill -f <name>उन सभी को मार देंगे।


आप कैसे पूर्ववत करते हैं bash -c "exec -a MyUniqueProcessName <command> &"?
VNVN

1
@VNVN आप नहीं कर सकते। यदि कोई कमांड चलाया गया है, तो वह चला गया है। इसे "पूर्ववत" करने के लिए, आपको यह जानने की आवश्यकता है कि यह क्या किया था और मैन्युअल रूप से पूर्ववत करें, यदि संभव हो तो। कमांड चलाते समय Ctrl + Z नहीं है।
टेराडो

+1। मेरा अवलोकन है: नाम का उपयोग exec -a name sleep 100तब दिखाता है जब मैं करता हूं ps -efलेकिन जब मैं नहीं करता हूं pstree -p
ट्रेवर बॉयड स्मिथ

यह पिघलने के लिए काम नहीं करता है। ->bash -c "exec -a mymeld123 meld &"
एडुआर्डो लुसियो

0

AMItac / Solaris एजेंसी

मैं एक ऑडियो transcoding उपकरण के साथ इस मामले में है। (3 बार चल रहा है) लेकिन केवल एक नाम है।

मैंने पीछा किया। वेन ने शेल टूल से बिन डायर पर 3 बार कॉपी की और फिर उसे एक नया नाम दिया। tc-1, tc-2, tc-3 (यह एक छोटा सा टूल है, इसलिए यह बहुत हार्डडिस्क स्पेस नहीं खाता है (वसा बायनेरिज़ के साथ आपको अन्य उल्लिखित तरीकों का उपयोग नहीं करना चाहिए)

इसलिए इस प्रक्रिया को एक अनोखे नाम से शुरू किया गया था और इस अनूठे नाम के साथ मारा जा सकता है, जो अन्य ट्रांसकोडिंग प्रक्रियाओं को मारने के खतरे के बिना मैं जारी रखना चाहता हूं।

एक और ट्रिक MIGHT का काम…।

#bash स्क्रिप्ट Name.sh जोड़ें, इसे निष्पादन योग्य बनाएं। वहां अपने आदेशों में टाइप करें और बैश स्क्रिप्ट को स्वयं शुरू करें। Centos पर इसका उपयोग तब Bashcript नाम से किया जाता है जिसे आपने नहीं लिया था और बिन नाम ही।

आशा है कि कुछ वहाँ किसी की मदद करता है।

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