скрипт (.sh) не прекратит работу

У меня есть файл сценария (start-conky.sh). Он выполняется правильно, но когда я делаю «ps -u», он показывает все еще PID, который, как я предполагаю, означает, что он все еще находится в памяти. Если я не убью, он просто останется там. Это не вызывает никаких проблем. Мне просто любопытно, как заставить скрипт завершиться после его выполнения. Я перечислил сценарий ниже. Я действительно не очень разбираюсь в написании программ, поэтому уверен, что есть ошибки. Кто-нибудь может помочь?

Заголовок: start-conky.sh «заголовок только что указан, его нет в сценарии»

#!/bin/bash

conky -c ~/Conky/scripts/config1 & conky -c ~/Conky/scripts/config2

exit
0
задан 17 April 2012 в 19:58

2 ответа

Когда выполняется скрипт, каждая строка выполняется по одной за раз, и каждая должна завершиться до начала следующей. Символ & после команды запускает команду в фоновом режиме, позволяя немедленно выполнить следующий оператор, не дожидаясь завершения предыдущего.

Итак, ваш скрипт запускает один экземпляр conky в фоновом режиме, используя файл config1, а затем запускает другой экземпляр conky на переднем плане, используя файл config2, а затем ожидает завершения этого экземпляра перед обработкой следующего exit строка. Если вы измените свой скрипт, чтобы иметь & после каждой команды conky, как это ...

#!/bin/bash

conky -c ~/Conky/scripts/config1 &
conky -c ~/Conky/scripts/config2 &

exit

... он не будет ждать их завершения перед обработкой команды exit.

Как заявили Иоанн и Элия, && используется для объединения двух команд вместе со второй, выполняющейся только в том случае, если первая выполнена успешно. Обычно это делается из командной строки, а не из сценария. Это объясняет, почему после внесения этого изменения второй экземпляр conky никогда не запускался. Первый никогда не заканчивался, чтобы начать второй.

Я надеюсь, что это прояснит некоторые вещи.

0
ответ дан 17 April 2012 в 19:58

Что должен & делать? То, как вы его используете, отправит conky -c ~/Conky/scripts/config1 в фоновом режиме.

0
ответ дан 17 April 2012 в 19:58

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

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