docky crash dari waktu ke waktu untuk saya. Bagaimana saya membuatnya restart secara otomatis setelah crash?
docky crash dari waktu ke waktu untuk saya. Bagaimana saya membuatnya restart secara otomatis setelah crash?
Jawaban:
Pertama, saya tidak menggunakan docky. Tapi saya berasumsi docky ada di $ PATH Anda. Jika tidak, maka tentukan path lengkap ke biner.
Inilah penggunaan Bash yang luar biasa:
Mulailah dengan file, seperti (vim bukannya gedit jika Anda mau):
gedit ~/process_monitor.sh
Ketikkan yang berikut ini:
#!/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
Simpan file.
Tetapkan izin:
chmod a+x ~/process_monitor.sh
Sekarang Anda dapat menjalankan program seperti:
~/process_monitor.sh docky
dan itu akan meluncurkan program sekali, dan pastikan untuk me-restart program jika Anda pernah memilih untuk berhenti atau memilih untuk crash.
Untuk menambahkan entri ke startup sistem sehingga meluncurkan program begitu Anda masuk dan tidak akan berhenti sampai Anda berhenti, lakukan ini:
/bin/bash ~/process_monitor.sh docky
Pastikan entri baru dicentang. Log out dan masuk dan Anda melihat docky sepanjang waktu.
/bin/bash ~/process_monitor.sh docky
ke aplikasi startup, namun tidak ada yang terjadi. Sebenarnya saya memang melihat setengah jendela terminal berkedip di layar sebentar setelah masuk, tapi itu saja. Script tidak masuk bahkan jika saya menambahkan perintah itu ke aplikasi startup. Apa yang harus saya lakukan?
Saya menulis skrip "pembungkus" kecil di bawah. Ini akan memunculkan docky dan memonitornya. Menelurkan ini sendirian tanpa docky di Aplikasi Startup.
#!/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 berfungsi dengan baik.
Tetapi hanya jika saya menggunakan Terminal, atau yakuake ... jadi saya bisa membuka shell baru, ketika saya menggunakan "~ / process_monitor.sh docky" atau "/ bin / bash ~ / process_monitor.sh docky"
Tetapi jika saya pergi ke "Aplikasi Startup", klik tambahkan dan ikuti instruksi ini tidak terjadi apa-apa ketika Komputer saya mulai. Saya masih harus menjalankan perintah itu secara manual. Dan itu tidak berhasil, ketika saya memasukkan /home/"username"/process_monitor.sh docky juga.
Saya menemukan, atau membuat solusi (yang belum diposting di suatu tempat) untuk mendapatkannya autostarted.
Alih-alih menggunakan ~ / process_monitor.sh docky membuat file teks baru:
#! / bin / bash
~ / process_monitor.sh docky
selesai
chmod a + x ~ / start.sh
Sekarang Anda dapat menjalankan program di terminal / yakuake atau apa pun yang Anda suka gunakan:
~ / start.sh
dan itu akan memulai docky ~ / process_monitor.sh. Jadi itu akan memulai dan memulai kembali jika crash.
Anda dapat memilih nama yang Anda suka untuk "process_monitor.sh" dan "start.sh" saja .sh penting. Tapi pastikan untuk mengubahnya di file teks Anda juga.
Sekarang pergi ke Dash Anda, ketik dan buka "Aplikasi Startup".
Sekarang Anda dapat me-restart Komputer Anda dan mengujinya.
process_monitor.sh
? Tidak diperlukan pengeditan file atau perubahan izin.