Как изменить параметры по умолчанию для монтирования /proc в Ubuntu Linux

Вопрос или проблема

У меня есть виртуальный частный сервер, размещенный в облаке, на котором работает Ubuntu 22.04, и мне нужно изменить параметры, с которыми монтируется /proc. В настоящее время он монтируется с опцией hidepid=2. Однако эта настройка несовместима с виртуальной машиной Java, которую DB2 использует для выполнения хранимых процедур, написанных на Java, что приводит к сбоям в вызовах этих процедур. Я могу исправить проблему, перемонтировав с hidepid=0, но с этим связаны две проблемы. Первая: через несколько минут /proc автоматически перемонтируется с hidepid=2, а вторая: при каждом перезагрузке сервера он монтируется с hidepid=2. Как я могу сделать это изменение постоянным? (Примечание: Определение монтирования не найдено в /etc/fstab, поэтому это не просто вопрос изменения чего-то там.)

Все, что вы установите для монтирования /proc в /etc/fstab, должно применяться с следующей загрузки: systemd заботится о “API-файловых системах” и автоматически монтирует их при запуске с настройками по умолчанию, если файловые системы не указаны в /etc/fstab.

Ответ или решение

Чтобы изменить параметры по умолчанию для монтирования /proc в Ubuntu 22.04, необходимо понять, как система Linux обрабатывает монтирование файловых систем и в частности, как это происходит для псевдо-файловых систем, таких как /proc. В вашей ситуации было установлено, что /proc монтируется с опцией hidepid=2, что вызывает проблемы с работой виртуальной машины Java, которую использует DB2 для выполнения процедур, написанных на Java. Вы правильно заметили, что простое исправление с помощью mount -o remount,hidepid=0 /proc работает временно, но не решает проблему на постоянной основе.

1. Изменение параметров монтирования /proc

Так как параметр монтирования /proc не прописан в файле /etc/fstab, его настройки могут управляться через systemd, как указано в вашем запросе. Вы можете определить параметры монтирования, используя systemd-единицы.

Шаги для изменения параметров:

  1. Создайте новый файл конфигурации монтирования:

    Для того чтобы переопределить параметры монтирования /proc, необходимо создать новый файл конфигурации для systemd:

    sudo nano /etc/systemd/system/proc.mount
  2. Содержимое нового монтирования:

    Вставьте следующее содержимое в созданный файл. Убедитесь, что используете параметры, которые вам нужны:

    [Unit]
    Description=Virtual files for proc
    After=swap.target
    
    [Mount]
    What=proc
    Where=/proc
    Type=proc
    Options=hidepid=0
    
    [Install]
    WantedBy=multi-user.target
  3. Деактивируйте текущее монтирование:

    Чтобы удалить текущее монтирование /proc, выполните следующую команду:

    sudo systemctl unmask proc.mount
    sudo systemctl stop proc.mount
  4. Перезагрузите systemd для применения изменений:

    После создания файла вам нужно выполнить команду для перезагрузки systemd:

    sudo systemctl daemon-reload
  5. Активируйте новое монтирование /proc:

    Теперь активируйте созданное монтирование:

    sudo systemctl start proc.mount
    sudo systemctl enable proc.mount

2. Проверка результатов

Чтобы убедиться, что опции применены корректно, используйте команду:

mount | grep proc

Вы должны увидеть /proc с параметром hidepid=0.

Заключение

Теперь при перезагрузке сервера /proc будет автоматически монтироваться с использованием параметров, которые вы указали в конфигурации systemd. Это решит проблему, связанную с работой Java в DB2, и обеспечит стабильную платформу для работы ваших приложений. Если у вас возникнут дополнительные вопросы или проблемы при выполнении этих шагов, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...