Какие-либо оговорки об использовании bash отредактированы из сценария оболочки в качестве альтернативы экрану?

У меня есть процесс, который запускается и выводится в файл журнала. Скрипт, который запускает его, запускает его на screen GNU, а затем следует за журналом с tail .

Процесс немедленно начнет записывать в файл журнала, и это полезно, чтобы иметь возможность наблюдать за его запуском таким образом, чтобы выявить любые ошибки конфигурации, а затем вернуться к подсказке с помощью ctrl-c . Я знаю, что это только останавливает tail , не заканчивает процесс, который регистрируется; это желательно.

То, что я хочу сделать, – запустить второй сторожевой процесс из сценария оболочки, который предназначен для выполнения действия только после завершения инициализации процесса, который запущен на screen ; это происходит только ПОСЛЕ ВСЕГО выхода журнала запуска.

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

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

Это очень много информации для простого вопроса, но я хотел включить все детали, связанные с моим прецедентом, чтобы дать пояснения в случае, если есть лучшая альтернатива.

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

Я также знаю, что мне нужно перенаправить вывод по мере необходимости, чтобы предотвратить вывод родительской оболочки.

Пример кода, проверенный и корректно выполняемый при запуске из сценария, а затем выйдите из него и вернитесь:

 #!/bin/bash ( sleep 10s; echo 1 > b ) & disown