сломанная Ubuntu после неудачного выпуска-обновления

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

Вы можете выдать set -mкомандную оболочку, чтобы она выполняла управление заданиями, когда -не интерактивна:

#! /bin/bash -
set -m
xcommand & # start as a background job, so won't receive SIGINT upon ^C
tail -f outputfile # start in foreground. Will receive SIGINT.
fg # bring the xcommand job in foreground and wait for it. Will receive SIGINT

Чтобы это работало, этот сценарий должен быть запущен на переднем плане. Также имейте в виду, что если вы нажмете Ctrl -Z или если фоновое задание попытается прочитать данные с терминала, у вас возникнут проблемы.

По моему опыту, такого рода приемы «работают» только в bashили yash, а не в других борновских -подобных оболочках.

0
30.09.2019, 21:28
1 ответ

Наконец-то я нашел причину :В репозиториях отсутствовало "основное"!! См. Правка 2

0
28.01.2020, 03:16

Теги

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