Как я могу избавиться от -bash: ulimit: открывать файлы, когда я открываю терминал на своем Mac

Каждый раз, когда я открываю новый терминал, появляются эти сообщения:

-bash: ulimit: open files: cannot modify limit: Invalid argument
-bash: ulimit: max user processes: cannot modify limit: Operation not permitted

Раньше я модифицировал ulimit, но я забыл, что я сделал. Итак, как я могу это исправить, пожалуйста, помогите. СПАСИБО

---- Обновить ----

У меня нет .profile или .bashrc в моем домашнем каталоге. Но у меня есть ~/.bash_profile и /etc/bashrc. И ~/.bash_profile выглядит так

export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
alias ls='ls -GF'
alias ll='ls -GFl'

export JAVA_HOME=$(/usr/libexec/java_home)
export LC_CTYPE="en_US.UTF-8"

/etc/bashrc выглядит так:

# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
   return
fi

PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
# Tell the terminal about the working directory at each prompt.
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then
    update_terminal_cwd() {
        # Identify the directory using a "file:" scheme URL,
        # including the host name to disambiguate local vs.
        # remote connections. Percent-escape spaces.
    local SEARCH=' '
    local REPLACE='%20'
    local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
    printf '\e]7;%s\a' "$PWD_URL"
    }
    PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND"
fi

Я не вижу ничего о ulimit.

---- Обновить ----

sudo ulimit -a -H
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) unlimited
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 65532
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1064
virtual memory          (kbytes, -v) unlimited

sudo ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 4864
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 709
virtual memory          (kbytes, -v) unlimited

person Alexis    schedule 11.03.2015    source источник
comment
Просмотрите файлы своего профиля: ~/.profile, ~/.bash_profile, ~/.bashrc и найдите, где вы пытаетесь вызвать ulimit. Возможно, вам придется заглянуть под /etc, но, вероятно, этого не произойдет, если вы не поиграете с профилями и т. Д. Там.   -  person Jonathan Leffler    schedule 11.03.2015
comment
Добавьте set -x вверху ~/.bash_profile и set +x внизу. Создайте новое окно терминала. Вы должны увидеть след команд, выполненных вашим ~/.bash_profile. Место, где генерируются сообщения об ошибках. Если он появляется до или после кода трассировки (вы, вероятно, хотите вывести что-то вроде echo "Trace off" после set +x), то вы знаете, что ~/.bash_profile не создает проблему; это другой файл. Возможно, вам придется прочитать руководство Bash, чтобы узнать, какие другие файлы это читается. Отлаживайте один файл за раз.   -  person Jonathan Leffler    schedule 11.03.2015
comment
@JonathanLeffler ни /etc/bashrc, ни ~/.bash_profile :(   -  person Alexis    schedule 11.03.2015
comment
Каковы значения из ulimit -a -H и ulimit -a? Добавьте результаты к информации в вашем вопросе.   -  person Jonathan Leffler    schedule 11.03.2015
comment
@JonathanLeffler обновлено   -  person Alexis    schedule 11.03.2015
comment
ХОРОШО; жесткие ограничения на открытые файлы (ulimit -n -H) — «неограниченные», а мягкие ограничения (ulimit -n) — «4864»; нет очевидной причины, по которой лимит нужно увеличивать. Аналогично с максимальными процессами (жесткий: 1064; мягкий: 709). Появились ли сообщения, когда вы использовали отладку set -x и set +x? Они появились до запуска /etc/bashrc, или после него, или во время него? Они появились до, после или во время запуска ~/.bash_profile? Если они появились «во время», то у вас должна быть информация о том, какая команда выполнялась (или какой файл).   -  person Jonathan Leffler    schedule 11.03.2015
comment
Если они появились до или после, то это важно знать — и важно знать, что применимо. Он контролирует, на что еще мы пытаемся смотреть. На первый взгляд, что я вижу, единственный подозрительный элемент — это export JAVA_HOME=$(/usr/libexec/java_home); может ли эта программа генерировать это сообщение? Это маловероятно, но вы еще не определили, откуда пришло сообщение, и пока мы не узнаем, откуда оно пришло, исправить его будет сложно. Я не видел проблемы, когда я работаю на Mac. Это не значит, что это не реально. Это просто означает, что это не всегда проблема.   -  person Jonathan Leffler    schedule 11.03.2015
comment
Давайте продолжим обсуждение в чате.   -  person Jonathan Leffler    schedule 11.03.2015


Ответы (1)


Наконец я решил эту проблему. Я обнаружил, что есть 3 файла профиля, которые OS X будет загружать при открытии нового терминала: «/etc/bashrc», «/etc/profile», «~/.bash_profile». Я нашел 2 строчки о настройке ulimit внизу "/etc/profile". Я удаляю эти 2 строки и решаю эту проблему.

В любом случае, благодаря @Jonathan Leffler, вы напомнили мне, какой еще профиль вызывает эту проблему. СПАСИБО XD

person Alexis    schedule 12.03.2015