Как я добираюсь для использования .local имен хостов с Дугой Linux?

Хорошо. Необходимо найти процесс, это пошло зомби или прекратило быть применимым, находить порт, это все еще открыто. Если Вы знаете имя процесса или PID, это очень полезно для использования с командами как pfiles, preap, и pkill.

У меня есть сценарий, который может искать PIDs или имена процесса открытых портов.

#!/usr/bin/ksh -p

process=$1

# if $1 is all numbers, then assume it's a PID, and get the parent process.
if [[ $process = +([0-9]) ]]; then
        for pid in $( ptree $process | grep '^[0-9]' | awk '{print $1}' ); do
                pfiles $pid | egrep "^$pid:|sockname"
        done
else
# if $1 is/has letters, then assume it's a process name, and grep accordingly.
        for pid in $( ptree | grep $process | grep '^[0-9]' | awk '{print $1}' ); do
                pfiles $pid | egrep "^$pid:|sockname"
        done
fi

Это распечатает PID, processname, и любые сокеты, открытые для любого процесса, который соответствует 1$.

После того как Вы знаете точно, который PID содержит тот открытый сокет, и не применим, можно использовать один из pkill или preap команды для насильственного закрытия того PID и дескрипторов файлов это имеет открытый.

18
24.07.2012, 07:45
3 ответа

Благодаря указателю на статью Arch Wiki о Avahi от Ulrich Dangel это - то, что я сделал:

  1. Установите avahi и nss-mdns $ sudo pacman -S avahi nss-mdns
  2. Добавить /etc/rc.d/avahi-daemon start в конец rc.local
  3. Так как я работаю dhcpcd, в /etc/dhcpcd.conf Я прокомментировал noipv4ll строка.
  4. Я также работал $ sudo /usr/sbin/avahi-autopid -D wlan0. Так как мне не нравится перезапускать, я не уверен, был ли шаг 3 необходим.
  5. В /etc/nsswitch.conf Я установил строку для чтения hosts: files mdns4_minimal dns mdns4.
  6. Затем я работал $ sudo /etc/rc.d/dbus restart перезапускать dbus.

После этого, просто выполнение ssh wayne@other.local просто работавший.

11
27.01.2020, 19:46
  • 1
    Относительно Вашей второй точки: Вы могли бы также просто добавить "avahi-демона" к строке ДЕМОНОВ в/etc/rc.conf –  Wieland 23.07.2012, 19:31
  • 2
    я думал об этом, но Wiki указала, что у некоторых людей были проблемы с ним запускающийся слишком быстрый в rc.conf и переставший работать в результате и что размещение его, где я сделал, было фиксацией. –  Wayne Werner 24.07.2012, 05:25

Я не думаю, что нам нужно avahi-daemon выполнение для использования .local. Вот, то, для чего я имею в моем сценарии запуска. Это намного более просто по сравнению с методом Wiki Дуги.

systemctl enable avahi-daemon
avahi-set-host-name $(hostname)
systemctl disable avahi-daemon
2
27.01.2020, 19:46

Ответ Уэйна уже довольно старый. С тех пор Arch перешел на использование systemd вместо init-скриптов. Страница Arch wiki Avahi была обновлена и содержит подробности о том, зачем нужны следующие шаги. Вкратце: Avahi - инструмент zeroconf, то есть сам по себе не нуждается в настройке, чтобы работать после установки на всех машинах вашей локальной сети, но вы должны сконфигурировать остальное программное обеспечение, чтобы оно вызвало запрос Avahi для получения информации.

Запустите их как корневые, или, при необходимости, загрузите с помощью sudo в терминале и замените nano на редактор по вашему выбору.

  1. pacman -S avahi nss-mdns устанавливает демона служб Avahi и многоадресный DNS resolver.
  2. nano /etc/nsswitch.conf Этот файл сообщает С-библиотеке, как получить информацию о службе имен.
  3. Измените строку hosts: files dns myhostname на hosts: files mdns_minimal [NOTFOUND=return] dns myhostname, сохраните и выйдите.
  4. systemctl запускает avahi-daemon запускает сервис Avahi вручную, так как мы уже загрузились.ищем ошибки)
  5. systemctl включает avahi-daemon включает сервис Avahi при загрузке.

Я только что выполнил эти шаги на ноутбуке Arch, и не было необходимости перезапускать другие службы или wifi интерфейс, чтобы мои другие машины обнаружили его в течение нескольких секунд, и чтобы мой ноутбук обнаружил их службы.

Поскольку я пока не могу прокомментировать ответ ggg, я просто хотел бы указать здесь, что нет необходимости делать это в сценарии запуска - для этого и нужна служба в systemd. Сделай это один раз и забудь об этом.

15
27.01.2020, 19:46

Теги

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