Как я могу отправить сигнал тайм-аута для свернутой команды в sbatch? - PullRequest
1 голос
/ 14 марта 2019

У меня есть программа, которая, когда получает SIGUSR1, записывает некоторые выходные данные и завершает работу.Я пытаюсь заставить sbatch уведомить эту программу до истечения времени ожидания.

Я ставлю программу в очередь:

sbatch -t 06:00:00 --signal=USR1 ... --wrap my_program

, но my_program никогда не получает сигнал.Я попытался отправить сигналы во время работы программы, с: scancel -s USR1 <JOBID>, но безуспешно.Я также попытался scancel --full, но он убивает оболочку, а my_program не уведомляется.

Один из вариантов - написать файл bash, который оборачивает my_program и перехватывает сигнал, перенаправляя его на my_program (аналогичнона этот пример ), но мне не нужен этот громоздкий bash-файл для чего-либо еще.Кроме того, в документации sbatch --signal очень четко сказано, что когда вы хотите уведомить конвертирующий файл Bash, вам необходимо указать signal=B:, поэтому я считаю, что оболочка Bash на самом деле не нужна.

Итак,Есть ли способ отправить сигнал SIGUSR1 в программу, поставленную в очередь с помощью sbatch --wrap?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...