Некоторые вещи, которые могут быть различными, когда программа запускается с помощью сеанса работы пользователя, а не сценарий запуска:
PATH
, Главная
, ...). Для того, чтобы запустить программу с минимальной средой и ряд стандартных дескрипторов файлов, вы можете использовать что-то вроде
env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin myprogram </dev/null >/dev/null 2>/dev/null
Проверьте INIT
человек страница или другая документация по вашей системе, чтобы увидеть, какие переменные окружения определяет Отказ Многие программы, предназначенные для пробега в качестве демонов, понадобится Путь
и ничего другого. Вышеупомянутое значение
- значение по умолчанию для init на Debian.
Ох Уважаемый Triple SSH-трубопровод с петли и бесполезными всадниками, вы нашли худший способ сделать это.
\ R
Вы видите, кажется, остается остаток новой строки, которая проходит через трубопровод. Вы должны удалить опцию -T [115946] -T
, это может быть причиной ваших проблем. Выходные данные предназначены для отображения на виртуальных клеммах отличается от нормального потока.
Более того, ECHO $ {PATH1} | xargs
полностью лишнее, просто запустить найти $ {path1}
, в любом случае у вас есть только одна входная строка xargs
. То же самое касается второго xargs
. Конечно, вы можете поставить все в Найти
. Попробуйте:
ssh root@"${sourcenode}" "find ${path1} -printf 'chmod %m \"f\"\n'"
и труба в следующую команду ( не в локальную петлю Bash, но подайте его непосредственно в SSH на Destnode).