Почему этот сценарий не будет работать на запуске?

Этот сценарий работает отлично, когда я запускаю его вручную. Как я могу заставить это работать на запуске? Функция сценария должна добраться Docky к автоматическому перезапуску в случае катастрофического отказа.

Я создал сценарий как это:

  • gedit ~/process_monitor.sh

Вставляемый в следующем (нашел, это на Спрашивает Ubuntu):

#!/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

Однако, когда я добавляю следующее для запущения приложений, который не заставляет сценарий запуститься на запуске. Ну, возможно, это делает, но сценарий не работает.

/bin/bash ~/process_monitor.sh docky

enter image description here

В основном существует своего рода графический элемент, который высвечивается на экране в течение половины секунды, но никаком другом знаке сценария, который будет замечен, и Docky не повторно запускается, если это уничтожается.

Как сделать эту работу? Я уверен, что это является чрезвычайно основным.

Я нахожусь на Ubuntu 14.04.

5
задан 13 April 2017 в 05:25

2 ответа

Используя пути в .desktop файле

проблема - то, что Приложения Запуска создают .desktop файл в ~/.config/autostart

В .desktop файл, Вы не можете использовать родственника - или пути переменной как ~. Используйте полные пути вместо этого:

/bin/bash /absolute/path/to/process_monitor.sh docky
10
ответ дан 23 November 2019 в 08:51

Это - лучший подход

, работает crontab -e, вставляют эту строку внизу

*/2 * * * * if [ ! `pgrep docky` ] ; then /usr/bin/docky; fi

проверка, если /usr/bin/docky команда запускает docky, вот именно. Это проверит, работает ли docky каждые 2 минуты, если не он запустит docky.

0
ответ дан 23 November 2019 в 08:51

Другие вопросы по тегам:

Похожие вопросы: