У меня есть 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
Как объяснено в том, Как изменить оболочку крона (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.
Вы могли попробовать включая хижину #!/bin/bash
в начале test.sh
.
Это устанавливает удар как Вашу оболочку для сценария из самого сценария, не имея необходимость обстоятельно объяснять его явно в Вашей crontab строке.