Как избежать/bin/sh-c/bin/bash и/bin/bash, работающего за тем же сценарием оболочки?

У меня есть test.sh сценарий, работающий в crontab каждые 10 минут для пользователя uni-01

crontab -l
*/10 * * * * /bin/bash /home/uni-01/test.sh > /home/uni-01/data/_d.log 2>&1

Когда я использую a ps -eF управляйте, чтобы test.sh сценарий запустился с /bin/sh -c /bin/bash и второй запуск с /bin/bash команда. Как постараться не работать /bin/sh -c /bin/bash команда?

root      6007   946  0 12555  2932   1 09:42 ?        00:00:00 /usr/sbin/CRON -f

uni-01    6011  6007  0  1127   756   0 09:42 ?        00:00:00 /bin/sh -c /bin/bash /home/uni-01/test.sh > /home/uni-01/data/_d.log 2>&1

uni-01    6019  6011  0  3164  3088   1 09:42 ?        00:00:00 /bin/bash /home/uni-01/test.sh

Релизом Ubuntu являются 16.04.1 LS

1
задан 3 November 2017 в 13:03

2 ответа

Как объяснено в том, Как изменить оболочку крона (sh для избиения)?, можно изменить оболочку по умолчанию на bash с:

SHELL=/bin/bash

Эта команда должна быть помещена где угодно перед Вашей строкой крона в Вашем случае:

SHELL=/bin/bash
*/10 * * * * /home/uni-01/test.sh > /home/uni-01/data/_d.log 2>&1

Само собой разумеется, это будет влиять на каждую строку крона после него, можно возвратить его с a SHELL=/bin/sh строка при необходимости – или просто создает a bash разделите в конце своего crontab.

2
ответ дан 3 December 2019 в 06:37

Вы могли попробовать включая хижину #!/bin/bash в начале test.sh.

Это устанавливает удар как Вашу оболочку для сценария из самого сценария, не имея необходимость обстоятельно объяснять его явно в Вашей crontab строке.

3
ответ дан 3 December 2019 в 06:37

Другие вопросы по тегам:

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