ssh удаленное выполнение команды и ulimit

У меня есть следующий сценарий:

cat > /tmp/script.sh <<EndOfScript
#!/bin/sh
ulimit -n 8192
run_app
EndOfScript

который работает гладко локально, это всегда в порядке. Но если я пытаюсь выполнить его удаленно через ssh:

scp /tmp/script.sh user@host:/tmp/script.sh
ssh user@host "chmod 755 /tmp/script.sh; /tmp/script.sh"

Я получил ошибку:

ulimit: open files: cannot modify limit: Operation not permitted

Я также попробовал следующую команду:

ssh user@host "ulimit -n 8192"

та же ошибка.

Похоже, что ssh удаленное выполнение команды осуществляет 1 024 жестких предела предела nofile, но я не могу узнать, как изменить это значение по умолчанию. Я пытался изменить/etc/security/limits.conf и перезапустить sshd, тем не менее та же ошибка.

6
задан Long Cheng 11 December 2009 в 11:10
поделиться

3 ответа

Прямо понял ответ: добавьте в /etc/initscript

ulimit -c unlimited
ulimit -HSn 65535
# Execute the program.
eval exec "$4"
4
ответ дан 8 December 2019 в 13:00
поделиться

ulimit требуются права суперпользователя для запуска.

Я бы посоветовал вам попросить администратора сервера изменить это значение для вас на сервере, на котором вы пытаетесь запустить скрипт.

Он / Она может сделать это, изменив / etc / secutiry / limits.conf в Linux. Вот пример, который может помочь:

*               soft    nofile          8192
*               hard    nofile          8192

После этого вам не нужно перезапускать sshd. Просто выйдите из системы и войдите снова.

Я бы посоветовал вам задать тот же вопрос в ServerFault . Там вы получите более качественные ответы, связанные с сервером.

2
ответ дан 8 December 2019 в 13:00
поделиться

Проверьте сценарии запуска ( / etc / profile , ~ /.??*) для вызова ulimit . IIRC, после того, как лимит был наложен, он больше не может быть расширен.

0
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

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