ক্র্যাশের পরে আমি কীভাবে ডকি পুনরায় চালু করব?


9

আমার জন্য সময়ে সময়ে ডকি ক্রাশ হয়। ক্রাশ হওয়ার পরে আমি কীভাবে এটি পুনরায় চালু করতে পারি?


: আপনি এই স্ক্রিপ্ট কেউ সুপার-ইউজার উপর একটি অনুরূপ প্রশ্নের উত্তর পোস্ট করেছে মানিয়ে নিতে সক্ষম হতে পারে superuser.com/questions/223449/auto-restart-process-on-crash

উত্তর:


10

প্রথমত, আমি ডকি ব্যবহার করছি না। তবে আমি ধরে নিচ্ছি ডকটি আপনার $ রাথের মধ্যে রয়েছে। যদি তা না হয় তবে বাইনারিটির পুরো পথ নির্দিষ্ট করুন।

এখানে ব্যাশের দুর্দান্ত ব্যবহার রয়েছে:

কোনও ফাইল দিয়ে শুরু করুন, যেমন (আপনি চাইলে জিডিটের পরিবর্তে ভিম):

  • gedit ~/process_monitor.sh
  • নিম্নলিখিত টাইপ করুন:

    #!/bin/bash
    
    if [[ -z "$1" ]];then
        echo "ERROR: must specify program"
        exit 1
    fi
    
    while (( 0 == 0 ));do
        $@ &
        pid=`jobs -l | awk '{print $2}'`
        wait $pid
    done
    
  • ফাইলটি সংরক্ষণ করুন।

  • অনুমতি সেট করুন:

    chmod a+x ~/process_monitor.sh
    

এখন আপনি এর মতো একটি প্রোগ্রাম চালাতে পারেন:

~/process_monitor.sh docky

এবং এটি প্রোগ্রামটি একবারে চালু করবে এবং আপনি যদি কখনও এটিটি ছাড়তে বা এটি ক্র্যাশ করতে চান তবে প্রোগ্রামটি পুনরায় চালু করতে ভুলবেন না।

সিস্টেম স্টার্টআপে একটি এন্ট্রি যুক্ত করতে যাতে আপনি একবার লগ ইন করে প্রোগ্রামটি চালু করে এবং আপনি প্রস্থান না করা অবধি থামবে না, এটি করুন:

  • ইউনিটি ড্যাশ এ যান, টাইপ করুন এবং "স্টার্টআপ অ্যাপ্লিকেশন" সন্ধান করুন
  • অ্যাড ক্লিক করুন
  • নাম: ডকি বা আপনি যা পছন্দ করেন
  • COMMAND: /bin/bash ~/process_monitor.sh docky
  • মন্তব্য: আপনার যা পছন্দ

নতুন এন্ট্রি চেক করা হয়েছে তা নিশ্চিত করুন। লগ আউট এবং ইন এবং আপনি সমস্ত সময় ডকি দেখতে পাবেন।


আমি যদি জিনোম 3 চালাচ্ছি এবং আমার কাছে "স্টার্টআপ অ্যাপ্লিকেশনগুলি" নেই এবং আমি এটি পরিবর্তে একটি .ডেস্কটপ ফাইলটিতে রাখতে চাইছি তবে কী হবে? আমি "এক্সিকিউট =" লাইনের জন্য কী রাখব?
guttermonk

বুঝেছি! :) "টার্মিনাল = মিথ্যা" এবং "এক্সিকিউটি = নোহুপ বাশ-সি 'process / প্রসেস_মনিটর.শ ডকি; $ শেল' &"
গুটারমনক

ধন্যবাদ! আমি ড্রপবক্স এবং সিনেরির জন্যও এটি ব্যবহার করি। দুর্দান্ত কাজ!
guttermonk

স্ক্রিপ্টটি দুর্দান্তভাবে কাজ করে যখন আমি এটিকে ম্যানুয়ালি চালিত করি তবে আমি /bin/bash ~/process_monitor.sh dockyস্টার্টআপ অ্যাপ্লিকেশনগুলিতে যুক্ত করেছি, তবুও কিছুই ঘটে না। আসলে আমি লগ ইন করার পরে এক সেকেন্ডের জন্য পর্দায় অর্ধেক টার্মিনাল উইন্ডো ফ্ল্যাশ দেখতে পাচ্ছি, তবে এটিই সব। আমি কমান্ডটি প্রারম্ভিক অ্যাপ্লিকেশনগুলিতে যুক্ত করলেও স্ক্রিপ্টটি কিক করে না। আমার কি করা উচিৎ?
রেভিতাহ মোনিকার

@ গুটারমনক আপনি উপরের মন্তব্যে আমার প্রশ্নে কোনও সহায়তা দিতে পারেন? আমি একটি পৃথক প্রশ্ন হিসেবে এই পোস্ট করা হয়েছে করেছি: askubuntu.com/questions/751465/...
Revetahw বলেছেন পুনর্বহাল মনিকা

1

এটি প্রক্রিয়া মনিটর পদ্ধতির অনুরূপ, অবধি লুপ ব্যবহার করে তবে কেবল ডকির জন্য।

সরল লিপি:

until docky; do
  sleep 1
done

তারপরে, আপনার প্রারম্ভিক অ্যাপ্লিকেশনগুলি থেকে ডকি সরান, এবং কেবলমাত্র [ফাইলের পথে] যুক্ত করুন, যেমন:

sh /usr/wegsehen/Scriptts/docky.sh


0

আমি একটি ছোট "র‍্যাপার" স্ক্রিপ্ট বেলো লিখেছিলাম। এটি ডকি স্প্যান করবে এবং এটি পর্যবেক্ষণ করবে। স্টার্টআপ অ্যাপ্লিকেশনগুলিতে ডক ছাড়াই এটিকে একা ছড়িয়ে দিন।

#!/usr/bin/env bash
#
###########################################################
# Author: Serg Kolo , contact: 1047481448@qq.com 
# Date: March 31st, 2016
# Purpose: monitor script that respawns docky if it dies
# Written for: http://askubuntu.com/q/752478/295286
# Tested on: Ubuntu 14.04 LTS
###########################################################
# Copyright: Serg Kolo , 2016
#    
#     Permission to use, copy, modify, and distribute this software is hereby granted
#     without fee, provided that  the copyright notice above and this permission statement
#     appear in all copies.
#
#     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
#     THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
#     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
#     DEALINGS IN THE SOFTWARE.

ARGV0="$0"
ARGC=$#

monitor_pid ()
{
  if ps -p $1 > /dev/null ;
  then
    # Docky is there, no-op
    sleep 0.25
    continue
  else
    # Docky is gone,ask user if they want it back
    DOCKY_PID=$(ask_restart)
  fi
}

spawn_docky()
{
  docky &> /dev/null  &
  echo $! # return docky pid
}

ask_restart ()
{
   zenity --question --title="Docky Monitor"\
          --text="Docky has quit, do you want to restart it ?" > /dev/null
   if [ $? -eq 0  ] ;then
        spawn_docky
   else
       kill -SIGTERM $MYPID # exit the script 
   fi        
}

main()
{
  local MYPID=$$
  local DOCKY_PID=$(spawn_docky)
  while true;
  do
     monitor_pid $DOCKY_PID
  done
}

main

-1

./ প্রসেস_মনিটর.শ দুর্দান্ত কাজ করে।

তবে কেবলমাত্র যদি আমি টার্মিনাল, বা ইয়াকুয়াক ব্যবহার করি ... তাই আমি যখন "~ / প্রক্রিয়া_মনিটর.শ ডকি" বা "/ বিন / বাশ ~ / প্রক্রিয়া_মনিটর.শ ডকি" ব্যবহার করি তখনই আমি একটি নতুন শেল খুলতে পারি

তবে আমি যদি "স্টার্টআপ অ্যাপ্লিকেশনস" এ যাই, ক্লিক করুন এবং এই নির্দেশাবলী অনুসরণ করুন যখন আমার কম্পিউটার শুরু হবে তখন কিছুই হয় না। আমাকে এখনও সেই আদেশটি নিজেই চালাতে হবে। এবং যখন আমি / home/"username"/process_monitor.sh ডকি রাখি তখন এটি কাজ করে।

এটি অটোস্টার্ট পাওয়ার জন্য আমি একটি সমাধান খুঁজে পেয়েছি (যা কোথাও পোস্ট করা হয়নি)।

~ / प्रक्रिया_মনিটর.শ ডকি ব্যবহার না করে একটি নতুন পাঠ্য ফাইল তৈরি করুন:

  • gedit ~ / start.sh
  • নিম্নলিখিত অনুসরণ করুন

#! / বিন / ব্যাশ

~ / প্রক্রিয়া_মনিটর.শ ডকি

সম্পন্ন

  • ফাইল সংরক্ষণ
  • অনুমতি সেট করুন:

chmod a + x ~ / start.sh

এখন আপনি আপনার টার্মিনাল / ইয়াকুয়াক বা আপনি যা পছন্দ করতে চান তা প্রোগ্রামটি চালাতে পারেন:

~ / Start.sh

এবং এটি ~ / process_monitor.sh ডকি শুরু করবে। সুতরাং এটি স্টারেটেট পাবে এবং ক্র্যাশ হলে পুনরায় শুরু হবে।

আপনি কেবল "প্রক্রিয়া_মনিটর.শ" এবং "স্টার্ট.শ" এর জন্য পছন্দ করেন এমন কোনও নাম চয়ন করতে পারেন .শ গুরুত্বপূর্ণ। তবে এটি আপনার পাঠ্যপুস্তকেও পরিবর্তন করতে ভুলবেন না।

এখন আপনার ড্যাশে যান, টাইপ করুন এবং "স্টার্টআপ অ্যাপ্লিকেশনগুলি" খুলুন।

  • অন্য সেট ডকি স্টার্টআপ সেটিংস মুছুন
  • একটি নতুন তৈরি করুন
  • নাম: ডকি বা যাই হোক না কেন এটির নাম দিন
  • আদেশ: / হোম / "আপনার ব্যবহারকারীর নাম" /start.sh (আমার জন্য প্রাক্তন। / Home/kevin/startup.sh)
  • মন্তব্য: আপনার যা পছন্দ।
  • আপনার ডকি সেটিংসে যান এবং "লগইন শুরু করুন" অক্ষম করুন

এখন আপনি আপনার কম্পিউটার পুনরায় চালু করতে পারেন এবং এটি পরীক্ষা করতে পারেন।

চলচ্চিত্র মাধ্যমে শিক্ষা


কেন কেবল একটি (প্রতীকী) লিঙ্ক তৈরি করবেন না process_monitor.sh? কোনও ফাইল সম্পাদনা বা অনুমতি পরিবর্তনের প্রয়োজন নেই।
ডেভিড ফোরস্টার

প্রতীকী লিঙ্কটির অর্থ কী?
কেভিন

এটি : ln -s process_monitor.sh start.shবাln -s ~/process_monitor.sh ~/Desktop/
ডেভিড ফোরস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.