docky benim için zaman zaman çöküyor. Düştükten sonra nasıl otomatik olarak yeniden başlatabilirim?
docky benim için zaman zaman çöküyor. Düştükten sonra nasıl otomatik olarak yeniden başlatabilirim?
Yanıtlar:
Öncelikle, docky kullanmıyorum. Ama docky'nin $ PATH'nızda olduğunu varsayıyorum. Değilse, ikilinin tam yolunu belirtin.
İşte Bash'in harika kullanımı:
(İsterseniz gedit yerine vim) gibi bir dosya ile başlayın:
gedit ~/process_monitor.sh
Aşağıdakileri yazın:
#!/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
Dosya 'yı kaydet.
İzni ayarlayın:
chmod a+x ~/process_monitor.sh
Şimdi şöyle bir program çalıştırabilirsiniz:
~/process_monitor.sh docky
programı bir kez başlatır ve programdan çıkmayı seçerseniz veya çökmeyi seçerseniz programı yeniden başlattığınızdan emin olun.
Sistem başlangıcına giriş yaptıktan sonra programı başlatacak ve siz çıkıncaya kadar durmayacak şekilde bir girdi eklemek için şunu yapın:
/bin/bash ~/process_monitor.sh docky
Yeni girişin işaretli olduğundan emin olun. Oturumu kapatıp tekrar açın ve her zaman dok gibi görünün.
/bin/bash ~/process_monitor.sh docky
başlangıç uygulamalarına ekledim , ancak hiçbir şey olmuyor. Aslında giriş yaptıktan sonra bir saniye boyunca ekranda bir terminal penceresinin yanıp söndüğünü görüyorum, ama hepsi bu. Komutu başlangıç uygulamalarına eklesem bile komut dosyası devreye girmez. Ne yapmalıyım?
Bu, bir until döngüsü kullanan işlem izleme yöntemine benzer, ancak yalnızca docky'nin kendisi için.
Basit komut dosyası:
until docky; do
sleep 1
done
Ardından, docky'yi başlangıç uygulamalarınızdan kaldırın ve yalnızca sh [dosya yolu] ekleyin, örneğin:
sh /usr/wegsehen/Scripts/docky.sh
Ben küçük bir "sarmalayıcı" senaryo yazdım. Docky'yi doğuracak ve izleyecek. Başlangıç Uygulamalarında kenetlenme olmadan bunu tek başına ortaya çıkarın.
#!/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
./Process_monitor.sh harika çalışıyor.
Ama sadece Terminal veya yakuake kullanırsam ... "~ / process_monitor.sh docky" veya "/ bin / bash ~ / process_monitor.sh docky" kullandığımda yeni bir kabuk açabilirim.
Ancak "Başlangıç Uygulamaları" na gidersem ekle'yi tıklayın ve bu talimatları izleyin Bilgisayarım başlatıldığında hiçbir şey olmuyor. Hala bu komutu manuel olarak çalıştırmam gerekiyor. Ve /home/"username"/process_monitor.sh docky'yi de koyduğumda iş kazandı.
Otomatik başlatma için bir çözüm buldum (veya bir yere gönderilmemiş).
~ / Process_monitor.sh docky yerine yeni bir textfile oluşturun:
#! / Bin / bash
~ / process_monitor.sh docky
tamam
chmod a + x ~ / start.sh
Şimdi programı terminalinizde / yakuake veya istediğiniz herhangi bir yerde çalıştırabilirsiniz:
~ / Start.sh
ve ~ / process_monitor.sh havuzunu başlatacaktır. Böylece çökme durumunda başlangıç ve yeniden başlatılır.
Sadece "process_monitor.sh" ve "start.sh" için istediğiniz herhangi bir ismi seçebilirsiniz .sh önemlidir. Ancak metin dosyalarınızda da değiştirdiğinizden emin olun.
Şimdi Dash'inize gidin, yazın ve "Başlangıç Uygulamaları" nı açın.
Şimdi Bilgisayarınızı yeniden başlatabilir ve test edebilirsiniz.
process_monitor.sh
? Dosya düzenleme veya izin değişikliği gerekmez.