как возвратиться к базовому сценарию от хвоста-f

Это не должно отличаться, чем копирование Установки от одного раздела до другого. Только необходимо скопировать файлы.

Если Вы гуглите для той проблемы существует довольно много руководств. Также помните, что Вы не должны клонировать раздел - 'простая' копия работает, также.

5
22.07.2014, 06:05
2 ответа

Смысл хвоста -f в том, чтобы бежать вечно, пока явно не убьют, так что вам придется устроить его убийство.

Если есть какая-то логика, которая определяет, когда процесс хвост должен быть убит, получите идентификатор процесса хвост и организуйте его убийство, когда это необходимо. Например, если вы хотите убить его через минуту:

tail -f file.log &
tail_pid=$!
sleep 60
kill $tail_pid
do_more_stuff

Если вы хотите завершить сценарий хвоста, но не скрипт оболочки, когда пользователь нажимает Ctrl+C, ловушку сигнала SIGINT. Вам необходимо установить ловушку на непустую строку (любое непустое значение подойдет, даже пробел), так как пустая строка вызовет игнорирование SIGINT подпроцессом tail, а также вызывающим оболочкой.

trap : INT       # set a signal handler for SIGINT that does nothing
tail -f file.log
do_more_stuff    # executed when tail is killed, e.g. by the user pressing Ctrl+C
trap - INT       # reset SIGINT to killing the script
2
27.01.2020, 20:38

Если вы не укажете в сценарии команду tail , оболочка будет ждать ее завершения, чего никогда не произойдет.

Если у вас есть другая работа, после которой вы хотите отключить команду tail , вы можете

tail -f logfile &
tailpid=$!
...do some other stuff...
kill $tailpid
...carry on...
4
27.01.2020, 20:38

Теги

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