Во-первых, я не использую Docky. Но я предполагаю, что доки в вашем $ PATH. Если нет, то укажите полный путь к двоичному файлу.
Вот удивительное использование Bash:
Начните с файла, такого как (vim вместо gedit, если хотите):
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
и он запустит программу один раз и обязательно перезапустит программу, если вы когда-нибудь решите выйти из нее или она решит сбой.
Чтобы добавить запись в автозагрузку системы, чтобы она запустила программу после входа в систему и не остановилась, пока вы не выйдете, сделайте следующее:
Перейдите в Unity Dash, введите и найдите «Запуск приложений»
Нажмите Добавить
Имя: Docky или как вам нравится
Команда: /bin/bash ~/process_monitor.sh docky
Комментарий: все что угодно
Убедитесь, что новая запись проверена. Выйдите из системы и войдите, и вы все время увидите докки.
Что, если я использую Gnome 3 и у меня нет «Startup Applications», и я хочу вместо этого поместить его в файл .desktop? Что бы я положил для строки "Exec ="?
Спасибо! Я также использую это для Dropbox и Synergy. Работает отлично!
guttermonk
Сценарий отлично работает, когда я запускаю его вручную, но я добавил /bin/bash ~/process_monitor.sh dockyв автозагрузку приложений, но ничего не происходит. На самом деле я вижу, как половина окна терминала мигает на экране в течение секунды после входа в систему, но это все. Скрипт не запускается, даже если я добавил эту команду для запуска приложений. Что мне делать?
Revetahw говорит восстановить Monica
@guttermonk Можете ли вы предложить какую-либо помощь по моему запросу в комментарии выше? Я также опубликовал это как отдельный вопрос: askubuntu.com/questions/751465/…
Revetahw говорит восстановить Monica
1
Это похоже на метод мониторинга процесса, использующий цикл до, но только для самого docky.
Простой скрипт:
until docky; do
sleep 1
done
Затем удалите docky из ваших автозагрузок и просто добавьте sh [путь к файлу], например:
Я написал небольшой сценарий «обертки» ниже. Он будет вызывать дока и следить за ним. Создайте это в одиночку, без Docky в Startup Applications.
#!/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
Но только если я использую Terminal или yakuake ... так что я могу просто открыть новую оболочку, когда я использую "~ / process_monitor.sh docky" или "/ bin / bash ~ / process_monitor.sh docky"
Но если я захожу в «Автозагрузку приложений», нажимаю «Добавить» и следую этим инструкциям, ничего не происходит при запуске моего компьютера. Я все еще должен выполнить эту команду вручную. И он выиграл работу, когда я также добавил /home/"username"/process_monitor.sh docky.
Я нашел или создал решение (которое еще нигде не было опубликовано) для его автоматического запуска.
Вместо использования ~ / process_monitor.sh docky создайте новый текстовый файл:
gedit ~ / start.sh
тип следования
#! / Bin / Баш
~ / process_monitor.sh docky
сделанный
Сохранить файл
Установить разрешение:
chmod a + x ~ / start.sh
Теперь вы можете запустить программу в своем терминале / yakuake или как вы предпочитаете использовать:
~ / Start.sh
и он запустит док ~ / process_monitor.sh. Таким образом, он будет запущен и перезапущен в случае сбоя.
Вы можете выбрать любое имя для «process_monitor.sh» и «start.sh», только .sh важно. Но обязательно измените это и в ваших текстовых файлах.
Теперь перейдите в Dash, введите и откройте «Автозагрузка приложений».
Удалить другие настройки Docky Startup
Создать новый
Имя: Docky или как вы хотите назвать это
Команда: / home / "ваше имя пользователя" /start.sh (для меня, например, /home/kevin/startup.sh)
Комментарий: все что угодно.
Зайдите в настройки Docky и отключите «Начать при входе в систему»
Теперь вы можете перезагрузить компьютер и проверить его.
Ответы:
Во-первых, я не использую Docky. Но я предполагаю, что доки в вашем $ PATH. Если нет, то укажите полный путь к двоичному файлу.
Вот удивительное использование Bash:
Начните с файла, такого как (vim вместо gedit, если хотите):
gedit ~/process_monitor.sh
Введите следующее:
Сохраните файл.
Установите разрешение:
Теперь вы можете запустить программу так:
и он запустит программу один раз и обязательно перезапустит программу, если вы когда-нибудь решите выйти из нее или она решит сбой.
Чтобы добавить запись в автозагрузку системы, чтобы она запустила программу после входа в систему и не остановилась, пока вы не выйдете, сделайте следующее:
/bin/bash ~/process_monitor.sh docky
Убедитесь, что новая запись проверена. Выйдите из системы и войдите, и вы все время увидите докки.
источник
/bin/bash ~/process_monitor.sh docky
в автозагрузку приложений, но ничего не происходит. На самом деле я вижу, как половина окна терминала мигает на экране в течение секунды после входа в систему, но это все. Скрипт не запускается, даже если я добавил эту команду для запуска приложений. Что мне делать?Это похоже на метод мониторинга процесса, использующий цикл до, но только для самого docky.
Простой скрипт:
Затем удалите docky из ваших автозагрузок и просто добавьте sh [путь к файлу], например:
sh /usr/wegsehen/Scripts/docky.sh
источник
Я написал небольшой сценарий «обертки» ниже. Он будет вызывать дока и следить за ним. Создайте это в одиночку, без Docky в Startup Applications.
источник
./Process_monitor.sh прекрасно работает.
Но только если я использую Terminal или yakuake ... так что я могу просто открыть новую оболочку, когда я использую "~ / process_monitor.sh docky" или "/ bin / bash ~ / process_monitor.sh docky"
Но если я захожу в «Автозагрузку приложений», нажимаю «Добавить» и следую этим инструкциям, ничего не происходит при запуске моего компьютера. Я все еще должен выполнить эту команду вручную. И он выиграл работу, когда я также добавил /home/"username"/process_monitor.sh docky.
Я нашел или создал решение (которое еще нигде не было опубликовано) для его автоматического запуска.
Вместо использования ~ / process_monitor.sh docky создайте новый текстовый файл:
Теперь вы можете запустить программу в своем терминале / yakuake или как вы предпочитаете использовать:
и он запустит док ~ / process_monitor.sh. Таким образом, он будет запущен и перезапущен в случае сбоя.
Вы можете выбрать любое имя для «process_monitor.sh» и «start.sh», только .sh важно. Но обязательно измените это и в ваших текстовых файлах.
Теперь перейдите в Dash, введите и откройте «Автозагрузка приложений».
Теперь вы можете перезагрузить компьютер и проверить его.
Видеоурок
источник
process_monitor.sh
? Не требуется редактирование файлов или изменение разрешений.ln -s process_monitor.sh start.sh
илиln -s ~/process_monitor.sh ~/Desktop/