x11vnc сервер – создание нескольких зомби-процессов – как остановить это?

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

Недавно начал использовать сервер x11vnc на Ubuntu (10.04) для удаленного доступа через интернет с ПК на Windows, используя VNC-вьюер с поддержкой SSL/SSH.

Думал, что все настроил правильно, а затем заметил много зомби-процессов x11vnc, иногда более 20 в системном мониторе.

Я использую команду терминала: x11vnc -rfbversion 3.6 -rfbport 5900 -rfbauth /home/xxxx/.vnc/passwd -forever -bg -gui tray для его запуска.

Как я могу остановить/избежать создания зомби при каждом подключении/отключении?

Запуск pkill x11vnc должен остановить x11vnc и все зомби-процессы, которые он создает.

Это просто отправит сигнал SIGTERM программе для завершения, и вы сможете запустить x11vnc после выполнения pkill предыдущего экземпляра.

Существует способ очистить все повисшие сессии.

`x11vnc -clear-all`

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

Решение проблемы с зомби-процессами x11vnc на Ubuntu

Введение

Использование x11vnc для удаленного доступа на Ubuntu может быть весьма эффективным, однако возникновение множества зомби-процессов может создать проблемы с производительностью системы. Зомби-процессы возникают, когда родительский процесс не вызывает wait() для получения статуса завершившегося дочернего процесса. В этой статье мы рассмотрим, как предотвратить появление зомби-процессов при использовании x11vnc.

Причины возникновения зомби-процессов

Каждый раз, когда вы подключаетесь и отключаетесь от x11vnc, он создает новый процесс для управления сеансом. Если этот процесс завершается, но родительский процесс (в данном случае x11vnc) не обрабатывает его завершение, он становится зомби-процессом. Это является распространенной проблемой, особенно если x11vnc запускается с параметрами, которые могут препятствовать корректной обработке завершения процессов.

Как избежать создания зомби-процессов

Чтобы избежать возникновения зомби-процессов, вы можете предпринять несколько шагов:

  1. Корректное завершение x11vnc:
    Если вам нужно перезапустить x11vnc или остановить его работу, используйте команду:

    pkill x11vnc

    Эта команда отправляет сигнал SIGTERM, который корректно завершает все экземпляры x11vnc и, как правило, освобождает зомби-процессы.

  2. Использование параметра -clear-all:
    В случае, если у вас уже имеется множество зомби-процессов, вы можете воспользоваться командой:

    x11vnc -clear-all

    Этот параметр очищает все висячие сеансы и помогает убрать зомби-процессы.

  3. Запуск через системный менеджер:
    Если вы планируете использовать x11vnc продолжительное время, рассмотрите возможность его запуска через системный менеджер, например, systemd. Это позволит автоматически обрабатывать завершение процессов и избежать накопления зомби. Вы можете создать сервисный файл для x11vnc и настроить его в systemd, что даст возможность управлять его жизненным циклом более корректно.

Примеры конфигурации systemd для x11vnc

Создайте файл /etc/systemd/system/x11vnc.service со следующим содержимым:

[Unit]
Description=Start x11vnc service
After=display-manager.service

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -rfbversion 3.6 -rfbport 5900 -rfbauth /home/xxxx/.vnc/passwd -forever -bg -gui tray
PIDFile=/run/x11vnc.pid

[Install]
WantedBy=multi-user.target

После создания файла, перезагрузите систему или выполните следующие команды для запуска сервиса:

sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service
sudo systemctl start x11vnc.service

Заключение

С возникновением зомби-процессов x11vnc вы можете бороться несколькими способами, включая правильное завершение процессов и использование системного менеджера для автоматизации управления. Следуя представленным выше рекомендациям, вы значительно уменьшите количество зомби-процессов и повысите стабильность работы вашего удаленного доступа.

Если у вас появятся дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться за поддержкой.

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

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