LINUX.ORG.RU

unexpected operator

 , ,


0

2

Гуглил не помогло,стоит Debian GNU/Linux 7 при запуске командой:

service pmta start
Такая вот ошибка,но сам сервер вроде как запускается.
Starting PowerMTA: /etc/init.d/pmta: 45: ulimit: Illegal option -u
/etc/init.d/pmta: 46: [: Illegal number: 
done.
/etc/init.d/pmta: 164: [: generic: unexpected operator

Как можно исправить такое? Помогите плиз.. .

скрипт бы приложил, ничего ж не понятно. выполни:
bash -x /etc/init.d/pmta start &> /tmp/LOG.txt
и залей вывод /tmp/LOG.txt на какойнить pastebin.ru

bl ★★★
()
Ответ на: комментарий от bl

Выполнил

bash -x /etc/init.d/pmta start &> /tmp/LOG.txt

+ RETVAL=0
+ VERSION=generic
+ '[' -f /etc/redhat-release ']'
+ '[' -f /etc/SuSE-release ']'
+ case "$1" in
+ '[' generic == suse ']'
+ echo -n 'Starting PowerMTA: '
Starting PowerMTA: + set_limits
++ ulimit -Hn
+ OLIMIT=4096
+ '[' 4096 '!=' unlimited ']'
+ '[' 4096 -lt 16384 ']'
+ ulimit -Hn 16384
++ ulimit -Hu
+ OLIMIT=31645
+ '[' 31645 '!=' unlimited ']'
+ '[' 31645 -lt 6144 ']'
+ /usr/sbin/pmtawatch --start
+ RETVAL=0
+ case "$VERSION" in
+ '[' 0 -eq 0 ']'
+ echo done.
done.
+ '[' generic == suse ']'
+ exit 0
iNdexoiD
() автор топика
Ответ на: комментарий от iNdexoiD

хех, не удалось воспроизвести. похоже из-под service и при выполнеии bash по-разному выдаётся вывод ulimit, и в случае с service в секции проверок:
'[' 4096 -lt 16384 ']'
не передаётся значение нужного лимита.

хз. у меня идей нет, разве что попробовать в /etc/init.d/pmta добавить в начало скрипта
set -x
в конце скрипта
set +x
для вкл-выкл дебага, и проверить service stop/start что происходит в вызовах тех ulimit

bl ★★★
()
Ответ на: комментарий от bl

Добавил,пробую service pmta start,service pmta stop Наружу всё вываливается вот такое... .

+ RETVAL=0
+ VERSION=generic
+ [ -f /etc/redhat-release ]
+ [ -f /etc/SuSE-release ]
+ [ generic == suse ]
/etc/init.d/pmta: 55: [: generic: unexpected operator
+ echo -n Starting PowerMTA: 
Starting PowerMTA: + set_limits
+ ulimit -Hn
+ OLIMIT=4096
+ [ 4096 != unlimited ]
+ [ 4096 -lt 16384 ]
+ ulimit -Hn 16384
+ ulimit -Hu
/etc/init.d/pmta: 45: ulimit: Illegal option -u
+ OLIMIT=
+ [  != unlimited ]
+ [  -lt 6144 ]
/etc/init.d/pmta: 46: [: Illegal number: 
+ /usr/sbin/pmtawatch --start
+ RETVAL=0
+ [ 0 -eq 0 ]
+ echo done.
done.
+ [ generic == suse ]
/etc/init.d/pmta: 164: [: generic: unexpected operator
+ exit 0
iNdexoiD
() автор топика
Ответ на: комментарий от iNdexoiD

похоже на шелл, не поддерживающий ==

Elyas ★★★★★
()
Ответ на: комментарий от iNdexoiD

http://askubuntu.com/questions/97257/ulimit-u-gives-illegal-option-error-when...
$ type ulimit
ulimit is a shell builtin

возможно шелловский(небашевский) вариант ulimit не поддерживает опцию -u.
варианты: изменить шебанг на баш.
изменить проверку ulimit. возможно отказаться от неё.
опции означают:
The -H and -S options specify that the hard or soft limit is set for the given resource. A hard limit cannot be increased by a non-root user once it is set
-u The maximum number of processes available to a single user

bl ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.