@Энди Gondzer вы должны покинуть Шенгенскую зону по 18 марта на абсолютном последний. Оставшееся до 9 апреля означает, что вы бы потратили в общей сложности 112 дней в предыдущий 180-дневный срок в Германии, в результате чего засидеться 22 дней начиная с 19 марта. Есть окно плагина украшения. Я думаю, что это ответ. Если вы укажете банан и спрашивают меня, если это яблоко или апельсин, я бы ответил на ваш вопрос, сказав "Нет, это банан". Появляется новая проблема. После установки, если выбрать для загрузки Windows 7, он может не запуститься....... Эх! Он говорит, что есть некоторые ошибки, и мне нужно для восстановления Windows. Может быть, это потому, что я выбираю "рекомендуемый ремонт" сапога-инструмент для ремонта?

Мой подход был бы такой:

  • Выполнить команду в фоновом режиме 1

  • Выполнить "сторожевой таймер" как фоновый процесс 2

  • Создать обработчик для перехвата прерывание сигналов в родительской оболочке

  • Ждать оба процесса, чтобы закончить. Процесс, который завершается первый, отправляет сигнал на прекращение работы родителя.

  • Обработчик ловушки родителя убивает фоновые процессы через Управление заданиями (один из них уже завершен по определению, но что убивать будут безобидное нет, потому что мы не используем Пидов, см. ниже)

Я попытался обойти возможного состояния гонки имя в комментариях с помощью системы управления оболочки работа идентификаторы (что бы быть однозначным в данном случае консоли), чтобы определить фоновые процессы убивать, а не Пидов системы.

#!/Бен/ш

Тайм-аут=$1
Команда='сна 5'

очистки функция {
 Эхо "прекращается ловушка"
 убить %1 %2
}

ловушка очистка прекращается

($Команды; команды Echo "завершен"; убить $$) &
(спи $тайм-аут; Эхо "время ожидания истекло"; убить $$) &

ждать
Эхо "конец выполнения"

Результат таймаут=10 (команд заканчивается до Барбоса):

$ ./timeout.sh 10
Команда выполнена
Прекращается ловушку
Окончания исполнения

Результат на тайм-аут=1 (Барбос заканчивается до команды):

$ ./timeout.sh 1
Время ожидания истекло
Прекращается ловушку
Окончания исполнения

Результат таймаут=5 (Барбос и команду завершить "почти" одновременно):

./tst.sh 5
Время ожидания истекло
Команда выполнена
Прекращается ловушку
Окончания исполнения