Назад | Перейти на главную страницу

создание скрипта через atd оставляет процесс в ожидании

у меня есть bash скрипт, который запускается через at, Я бегу как echo "bash /path/to/my/script.sh" | at -M now потому что я хочу, чтобы он работал отдельно.

Когда скрипт запускается, сразу вижу 2 экземпляра (ps), и даже после успешного завершения моего скрипта другой экземпляр просто не завершится. Он будет заменен на pid 1 и просто продолжает ждать ( strace показывает wait4(-1...).

Я не могу понять, почему и как разветвляется этот второй экземпляр! Когда я запускаю сценарий без at, Я не вижу второго процесса. Какие-нибудь подсказки / советы по отладке?

Спасибо.

проверить этот простой скрипт:

#!/bin/bash

exec >/tmp/$$.log
exec 2>/tmp/$$-2.log

set -x

echo "1"
echo "2" >&2

Это перенаправит весь вывод сценариев stdout и stderr в указанные файлы журнала (в этом случае /tmp/<pid>.log и /tmp/<pid>-2.log), а часть файла журнала, содержащая stderr, будет содержать каждую выполняемую команду. Вы можете использовать этот вывод, чтобы следить за выполнением скрипта и видеть, где он завис ...

содержание 17958-2.log:

+ echo 1
+ echo 2
2