Как я могу отключить avahi-daemon и можете ли вы объяснить мне, как он работает, если он отображается как служба, но его нет в rcN.d?
Вы можете прекратить читать здесь. На самом деле, пожалуйста, сделайте это, если только вы не хотите НАУЧИТЬ новичка какой-нибудь Ubuntu. Приведенный выше вопрос должен быть достаточно ясен, чтобы на него можно было ответить. Остальное - это просто мой призыв к какому-то более структурированному способу ориентироваться в Ubuntu. Я могу более или менее использовать другие "UNIX-подобные" системы.
Я новичок, поэтому, если я веду себя глупо, считайте меня своим ежедневным WTF, но, пожалуйста, помогите мне совершенствоваться.
При каждой загрузке, /sbin/init
кажется, он запускает процесс, называемый avahi-daemon
# initctl list | grep avahiavahi-daemon start/running, process 1280
как пользователь avahi
# id avahiuid=107(avahi) gid=118(avahi) groups=118(avahi)
a ps -efww ef
показывает 2 активных процесса, оба вызываются avahi-daemon
, и в PPID
из первых avahi-daemon
действительно 1
, второй процесс является просто дочерним процессом первого. То PPID
= 1
это то, что заставляет меня думать, что это было автоматически запущено.
Необязательно:
Я действительно не знаю, как правильно проверить, что выполняется при запуске системы, думая об этом.
Можно ли таким образом получить список служб, которые запускаются при запуске? initctl list | sort
во всяком случае, я, кажется, могу временно остановить эту "службу" с помощью этой команды:
service avahi-daemon stop
или действительно эта команда
/etc/init.d/avahi-daemon stop
непосредственно, что и является тем, что это /usr/sbin/service
кажется, он использует:
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE"
При запуске скрипт напоминает мне, что я управляю службой "Выскочки" и что я должен использовать более простой вызов stop avahi-daemon
. Я предполагаю, что мне нужно будет узнать о Выскочке, но пока все, что мне нужно узнать, это это:
как мне отключить службы в Ubuntu?
Вот что я попробовал (это должен быть правильный способ сделать это, или это не так?):
update-rc.d avahi-daemon disable
но он жалуется:
System start/stop links for /etc/init.d/avahi-daemon do not exist
поэтому я отправился на поиски пути к двоичному файлу:
# Let me know if there is a better way to get the path abovereadlink "/proc/$(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)/exe"
что это такое:
/usr/sbin/avahi-daemon
и все, что можно было бы считать "исполняемым файлом" в etc
:
find /etc -type f -name '*avahi*' -perm -u+x
думая, что я найду сценарии запуска в /etc/rcN.d
. Вместо этого я нашел другие вещи.:
/etc/dhcp/dhclient-exit-hooks.d/zzz_avahi-autoipd/etc/dhcp/dhclient-enter-hooks.d/avahi-autoipd/etc/resolvconf/update-libc.d/avahi-daemon/etc/network/if-up.d/avahi-autoipd/etc/network/if-up.d/avahi-daemon/etc/network/if-down.d/avahi-autoipd/etc/avahi/avahi-autoipd.action
похоже на это avahi-daemon
вещь запускается при изменении состояния сети? Есть ли лучший способ найти двоичные файлы, автоматически запускаемые в системе?
Обычно я бы уничтожил символические ссылки в различных rc{3,5}.d
на данном этапе, но сейчас я не слишком уверен. Что именно запускает этого зверя? Как отключить его без apt-get remove
или apt-get purge
?
Насколько я могу судить, у него не слишком много открытых ресурсов:
lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)
кроме того, он не использует слишком много циклов процессора, основываясь на беглом взгляде на htop
.
Я написал этот однострочник, чтобы посмотреть, не испортится ли он при использовании CPU в течение одной минуты, и этого никогда не происходит, но дайте мне знать, есть ли лучшие способы проверить это:
for i in {1..59}; do ps -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`) --no-headers -o pcpu; sleep 1; done