টার্মিনালে চালু হওয়া অ্যাপ্লিকেশনটিকে অনস্বীকার্যভাবে প্রস্থান করা থেকে কীভাবে প্রতিরোধ করবেন?


10

আমি টার্মিনাল থেকে এই জাতীয় আদেশ সহ অ্যাপ্লিকেশন চালু করি:

/Applications/Mail.app/Contents/MacOS/Mail &

গুরুত্বপূর্ণ অংশ  &

  • ইউনিক্স / লিনাক্স / সোলারিসের জন্য:

    • আমি স্কুলে শিখেছি যে &প্রোগ্রামগুলি যুক্ত করার  ফলে প্রোগ্রামটি নিজেরাই লাইভ করে।
    • আমি xeyes &শেল বন্ধ করার পরেও প্রোগ্রামটি নিরাপদে চলার মতো একটি কমান্ড চালু করা এবং রাখার বিষয়টি দৃ strongly়তার সাথে মনে আছে  ।
  • ম্যাক ওএস এক্সে (ইউনিক্সের ভিতরে):

    1. আমি একটি অ্যাপ্লিকেশন চালু করি  &এবং আমি টার্মিনাল উইন্ডোটি বন্ধ করি: অ্যাপ্লিকেশনটি প্রস্থান করে!
    2. ম্যাক ওএস এক্সে কেন এই অনাকাঙ্ক্ষিত আচরণটি ঘটে?
    3. কিভাবে এই সংশোধন করা যেতে পারে ?

উত্তর:


7

আপনি যা অর্জন করতে চান তা অর্জনের "স্ট্যান্ডার্ড" পদ্ধতিটি (ওএস এক্সের পাশাপাশি লিনাক্স, ফ্রিবিএসডি বা অন্যান্য সিস্টেমে) কমান্ডটি ব্যবহার করতে হবে nohup:

nohup program &

এটি শুরু হবে programযা শেলের সাথে সম্পর্কিত ব্যাকগ্রাউন্ডে চলবে &- এবং নোহপ কমান্ডের কারণে হ্যাঙ্গআপ সংকেত উপেক্ষা করবে।

আপনি শেলটি বন্ধ করে দিলেও এই প্রোগ্রামটি চলতে থাকবে। টার্মিনাল.এপ বন্ধ করে দেওয়ার কারণে আপনি শেলটি বন্ধ করে দিচ্ছেন বা আপনি শেলটি বন্ধ করছেন কারণ আপনি কম্পিউটারে কোনও এসএসএস সংযোগটি সংযোগ বিচ্ছিন্ন করে দিচ্ছেন বা এর মতোই কিছু আসে যায় না।


1
এটি nohup.outবর্তমান ফোল্ডারে একটি ফাইল তৈরি করে । এমনকি যখন লেখার কিছুই নেই। কয়েক সপ্তাহ পরে, nohup.outআমার ম্যাকের যে কোনও জায়গায় ফাইল থাকবে have :-(
নিকোলাস বারবুলেসকো

1
@ নিকোলাস বার্বুলেসকো ব্যবহার করুন nohup command>/dev/null&বা হয় command&disown
Lri

6

আপনি যখন কোনও টার্মিনাল উইন্ডোটি বন্ধ করেন, এটি শেলের কাছে একটি সিগআপ (হ্যাঙ্গআপ সিগন্যাল) প্রেরণ করে , যা তারপরে এটি শুরু হওয়া সমস্ত প্রক্রিয়াগুলিতে সিগআপকে প্রেরণ করে । এটি বাশ এবং অন্যান্য অনেক শেলের জন্য traditionalতিহ্যবাহী আচরণ এবং এর theতিহ্যবাহী সমাধান হ'ল নোহআপ ব্যবহার করা।

বিভিন্ন ইউনিক্স মেশিনগুলি পৃথক করতে পারে এমন উপায় রয়েছে, সুতরাং আপনি সম্ভবত যে নির্দিষ্ট টার্মিনাল এমুলেটরগুলি ব্যবহার করেছেন বা নির্দিষ্ট শেলগুলি আপনি আলাদা ব্যবহার করেছেন তা সম্ভব। তবে এটি ওএস এক্সের সাথে নির্দিষ্ট নয় For উদাহরণস্বরূপ, উবুন্টুতে এই একই বিষয়ে একটি প্রশ্ন রয়েছে on


6

অ্যাম্পারস্যান্ড " &" ব্যবহার করে আপনি টার্মিনালকে শেলের নিজেই ব্যাকগ্রাউন্ডে প্রক্রিয়া চালনার জন্য বলছেন। সুতরাং, আপনি যখন শেলটি বন্ধ করবেন (এবং প্রক্রিয়াটি মেরে ফেলবেন), জিইউআই (মেইল.অ্যাপ নিজেই) বন্ধ হবে।

টার্মিনাল থেকে মেল প্রবর্তনের সঠিক কমান্ডটি সহজ:

open -a Mail; exit

সম্পাদনা: আমি সবেমাত্র ইউএন্ডএল স্ট্যাক এক্সচেঞ্জে এটি পেয়েছি: শেল স্ক্রিপ্ট লাইনের শেষে এম্পারস্যান্ডের অর্থ কী? প্রদত্ত উত্তরগুলি দুর্দান্ত এবং আমি যা যা করতে পারি তার থেকে আরও বিশদ এবং আরও ভালভাবে যা ঘটছে তা ব্যাখ্যা করে! আমি এটি মাধ্যমে পড়া উচ্চ প্রস্তাব।


অ্যাপটিতে কমান্ড-লাইন প্যারামগুলি পাস করার বিষয়ে কী? /Users/nicolas/Desktop/Firefox-29-fr/Firefox.app/Contents/MacOS/firefox -profile "/Users/nicolas/Desktop/Firefox-29-fr/Profil-Firefox-29-fr/" -no-remote &
এটির


সুনির্দিষ্ট অ্যাপ্লিকেশন আরম্ভ না করে, না থাকা /Applications, তবে একটি নির্দিষ্ট পথে? /Users/nicolas/Desktop/Firefox-29-fr/Firefox.app/Contents/MacOS/firefox -profile "/Users/nicolas/Desktop/Firefox-29-fr/Profil-Firefox-29-fr/" -no-remote &
এটির

@ নিকোলাস বারবুলেসকো [সম্পূর্ণ পথ] খুলুন, বা ডিরেক্টরিতে সিডি করুন এবং [ফাইল] খুলুন। আপনার হোম ফোল্ডার এবং বিশেষ অক্ষরের জন্য ~ / ব্যবহার করতে পারেন, "তারকাচিহ্ন", হিসাবে সংক্ষিপ্ত স্বরলিপি ধরে নিলে অন্য কোনও স্ট্রিংয়ের মান মেলে না, IE: ~ / De * / ফায়ার * ... এবং সেটার। অথবা কেবল একটি সাধারণ স্ক্রিপ্ট লিখুন: বিড়াল> নেমফসক্রিপ্ট ..... #! / বিন / শ .... খুলুন [পুরো পথ] .... ^ ডি ..... চিমড + এক্স নেমফসক্রিপ্ট ...... \ নামফসক্রিপ্ট .... এবং optionচ্ছিক, এমভি নেমোফস্ক্রিপ্ট $ প্যাথ / আপনার পার্সোনালবিন। আইক্রেসিফার পড়ার মানুষ খোলা। এটি একটি সাধারণ কমান্ড, এবং একটি সহজ কমান্ড হিসাবে ট্রেড অফ এটি শক্তিশালী নয়।
এনজেবুট

1
দুঃখিত, এখনও -a যুক্তিটি ব্যবহার করতে হবে:open -a Applications/Mail.app/Contents/MacOS/Mail; exit
এনজেবুট

4

আমি সমাধানটি খুঁজে পেয়েছি:

(/Applications/Mail.app/Contents/MacOS/Mail &)

এটি সহজ, এটি দুর্দান্ত, এবং এটি কার্যকর!

বন্ধনীগুলি  ( )একটি সাব-শেলের মধ্যে কমান্ডটি চালু করে।


- এবং & অপেক্ষায় না থেকে প্রোগ্রাম থেকে শেলটিতে ফিরে আসে, যাতে আপনি শেলটি ব্যবহার চালিয়ে যেতে পারেন বা এটিকে বন্ধ করতে পারেন, আপনি যে প্রোগ্রামটি প্রস্থান শুরু করেছিলেন তা ছাড়াই।
r_alex_hall

3

@ জেকসোয়েগার্ডের সঠিক কমান্ড রয়েছে তবে আপনি মন্তব্যে যেমন উল্লেখ করেছেন, এটি একটি nohup.out ফাইল তৈরি করে। Nohup.out ফাইলটি তৈরি হতে আটকাতে আপনাকে অন্য কোথাও STDOUT এবং STDERR পুনর্নির্দেশ করতে হবে। সম্পূর্ণ কমান্ড হবে nohup program &>/dev/null &। এটি আপনার প্রোগ্রামটি সাইনআপটিকে উপেক্ষা করে, এবং সমস্ত এসটিডিআউট এবং এসটিডিআরআর / dev / নালকে প্রেরণে পটভূমিতে চালাবে।

তবে, যদি আপনি নোহপ যোগ করার কথা মনে না রাখেন (যেমন আপনার মূল প্রশ্নের মতো), আপনি disown -arhসাইনআপটিকে উপেক্ষা করার জন্য সমস্ত পটভূমি চলমান কাজ চিহ্নিত করতে কমান্ডটি ব্যবহার করতে পারেন ।


সুন্দর উত্তর, এখনও জটিল। এবং দুর্দান্ত প্রোফাইল ইমেজ। :-)
নিকোলাস বারবুলেসকো

0

অথবা আপনি চেষ্টা করতে পারেন open -a /Applications/Mail.app

ব্যবহার: খুলুন [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-s] [- বি] [-এ] [ফাইলের নাম] [- যুক্তি যুক্তি]
সহায়তা: ওপেন শেল থেকে ফাইলগুলি খুলবে।
      ডিফল্টরূপে, এই ফাইলটির জন্য ডিফল্ট অ্যাপ্লিকেশন ব্যবহার করে প্রতিটি ফাইল খোলে।
      ফাইলটি যদি কোনও URL আকারে থাকে তবে ফাইলটি URL হিসাবে খোলা হবে।
বিকল্প:
      -এ নির্দিষ্ট অ্যাপ্লিকেশন সহ খোলে।
      -b নির্দিষ্ট অ্যাপ্লিকেশন বান্ডেল সনাক্তকারী দিয়ে খোলে।
      - আমরা টেক্সটএডিট সহ খোলে।
      -t ডিফল্ট পাঠ্য সম্পাদক সহ খোলে।
      -f স্ট্যান্ডার্ড ইনপুট থেকে ইনপুট পড়ে এবং টেক্সটএডিট দিয়ে খোলে।
      -এফ - ফ্রেশ উইন্ডোজ পুনরুদ্ধার না করেই টাটকা অ্যাপ্লিকেশন চালু করে। শিরোনামহীন দস্তাবেজগুলি বাদ দিয়ে সংরক্ষিত অবিচ্ছিন্ন অবস্থাটি হারিয়ে যায়।
      -আর, - রিভেল খোলার পরিবর্তে ফাইন্ডারে নির্বাচন করে।
      -ডাব্লু, - ওয়েট-অ্যাপস ব্লকগুলি ব্যবহৃত অ্যাপ্লিকেশনগুলি বন্ধ না করা পর্যন্ত (তারা ইতিমধ্যে চালু থাকলেও)।
          --args বাকী সমস্ত আর্গুমেন্টগুলি আরগভিতে খোলার পরিবর্তে অ্যাপ্লিকেশনটির মূল () ফাংশনে প্রেরণ করা হয়।
      -n, - নতুন অ্যাপ্লিকেশনটির একটি নতুন উদাহরণ খুলুন এমনকি যদি ইতিমধ্যে একটি চলমান থাকে।
      -জে, - লুক লুকিয়ে থাকা অ্যাপ্লিকেশনটি চালু করে।
      -জি, - ব্যাকগ্রাউন্ড অ্যাপ্লিকেশনটিকে অগ্রভাগে নিয়ে আসে না।
      -h, - শিরোনাম প্রদত্ত ফাইলের সাথে মিল পাওয়া শিরোনামগুলির জন্য শিরোলেখ ফাইলের সন্ধান করে এবং সেগুলি খুলবে।
      -s -h, এসডিকে ব্যবহারের জন্য; যদি সরবরাহ করা হয় তবে কেবলমাত্র এসডিকে যাদের নামতে যুক্তির মান রয়েছে তা অনুসন্ধান করা হবে।
                        অন্যথায় প্রতিটি প্ল্যাটফর্মের সর্বোচ্চ সংস্করণযুক্ত এসডিকে ব্যবহার করা হয়।

-2

আমি একটি সমাধান পেয়েছি: মন্দ সঙ্গে মন্দ লড়াই।

আমি আমার অ্যাপ্লিকেশনটি এই জাতীয় আদেশ দিয়ে চালু করি:

/Applications/Mail.app/Contents/MacOS/Mail & exit

শেলটি একবারে প্রস্থান করে। আমি টার্মিনাল উইন্ডোটি বন্ধ করার পরেও অ্যাপটি টিকে আছে।

তবে এই সমাধানটি খুব সহজ নয়।


1
আপনার সত্যিই এমন অ্যাপ্লিকেশনগুলি খোলার উচিত যা খোলা সাথে বান্ডিলযুক্ত । এটি ভবিষ্যতের প্রমাণ হ'ল বান্ডিলের বিষয়বস্তুগুলি যেমন পরিবর্তন হয় তেমনি তাত্পর্যপূর্ণও হয়।
আয়ান সি

@ আইয়ান - এখানে আমি বিশেষত অ্যাপ্লিকেশনগুলি খোলার বিষয়ে আগ্রহী যারা একটি নির্দিষ্ট পথে রয়েছে, /Applicationsআমার ম্যাকের সাথে নেই এবং বান্ডিল নয়।
নিকোলাস বারবুলেসকো

1
.appফোল্ডারগুলিকে "বান্ডেল" বলা হয় এবং openকমান্ডটি সেগুলি /Applicationsফোল্ডারে বা অন্য কোনও ফোল্ডারে থাকুক না কেন সেগুলি চালু করতে পারে । এই প্রসঙ্গে "বান্ডেল" শব্দটির অর্থ "ওএস এক্সের সাথে চালিত" নয়।
কেউ

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