Как узнать откуда запускается демон?
Иногда использую teamviewer для помощи родителям например или брату. Но это хрень запускает свой демон. Я так понимаю он мне нафиг не нужен, так как я юзаю его только как клиента. Но в списке sysv-rc-conf его нет. Откуда и как это чудо запускается? И как это узнать?
основной экзешник запускает его, например
Да, при запуске самого приложения — это так. Я наверно не очень хорошо описал — оно запущено после загрузки. Т.е. оно где-то в автозагрузке сидит, но не в init.d
Пакетный менеджер не умеет показать список файлов установленных пакетом для teamviewer? Один из них что-то запускающее демон. Чудо не щупал, просто предположение: может его через dbus дергают? Еще можно ps -auxf и погрипать.
В пользовательской автозагрузке смотрел? А, если у тебя Ubuntu, то еще и в /etc/init загляни.
ps -aux | grep teamviewer
У меня его запускает teamviewerd.service, например. Судя по содержимому пакета, кроме systemd, он умеет sysv и upstart.
Есть мнение, что без онного teamviewer не работает.
Смотреть в teamviewerd в случае systemd
Толку от погрепать? ЧТО он запускает я и так знаю: /opt/teamviewer9/tv_bin/teamviewerd -f
Это понятно. Кто это запускает?
Даже не думал смотреть в пользовательской, потому что оно запущено от root это раз, и два — оно запущено до входа кого-либо в систему.
Собственно мне это-то и не нравится — то что постоянно работает какой-то непонятный проприетарный демон, который мне нужен время от времени.
А, если у тебя Ubuntu, то еще и в /etc/init загляни.
Во — то то что надо.
Не, я могу тупо закомментировать, но это же волшебный systemd как я понимаю. Должны же тут быть нереально крутые инструменты настройки?
Есть мнение, что без онного teamviewer не работает.
Ничо — при старте клиента запустит. А если нет — я вручную запущу, мне не в падлу.
grep -R teamviewerd /etc/rc.d .. или где там еще могут быть скрипты демона пускающие.
А в пакете поискал?
А я с этого начал и не нашел.
Но уже же разобрался: Как узнать откуда запускается демон? (комментарий) — вот он негодник. Что теперь с этим делать?
И как и чем это настраивается? Есть какие-то утилиты? Как этим управлять?
но это же волшебный systemd как я понимаю
Спасибо. Я уже запутался нахрен в этих системах инициализации каждая из которых лучше всех остальных и поддерживает все способы запуска кроме собственного (((
Я уже запутался нахрен в этих системах инициализации
Их три с половиной штуки
и поддерживает все способы запуска кроме собственного
teamviewer при запуске говорит, что он не запущен. Но, я согласен, не фиг его всегда держать включенным.
И как и чем это настраивается? Есть какие-то утилиты? Как этим управлять?
Подозреваю, что запуск демона настраивается из самого TeamViewer
Там есть автозапуск, но речь о клиенте, а не о демоне. Настроек запуска демона не нашел.
Ну и переименуй тогда *.conf. Или грохни.
Да ясно. Но это как-то грубо.
Я тебе, практически, инструкцию от upstart процитировал.
Так раньше и предлагалось делать. Сейчас рекомендуют делать echo manual > /etc/init/daemon.override
Спасибо, всем. Решено. Переименовал короче.
Спасибо, всем. Решено. Переименовал короче.
А ты подумал что будет при обновлении пакета? man 5 init, ищи «override».
Источник
Что такое демоны (daemons) в Linux?
Обновл. 20 Июл 2021 |
В этой статье мы рассмотрим, что такое демоны (и их примеры) в Linux, а также версии происхождения термина «daemon».
Что такое демоны?
Демоны (англ. «daemons») — это работающие в фоновом режиме служебные программы (или процессы), целью которых является мониторинг определенных подсистем ОС и обеспечение её нормальной работы. Например, демон принтера контролирует возможности печати, демон сети контролирует и поддерживает сетевые коммуникации и т.д.
Демоны являются аналогом служб (services) в Windows: они выполняют определенные действия в заранее определенное время или в ответ на определенные события. Существует множество различных демонов, работающих в Linux, каждый из которых создан специально для наблюдения за своей собственной маленькой частью системы. Из-за того, что демоны выполняют основную часть своей работы в фоновом режиме и не находятся под прямым контролем пользователя, бывает трудно определить предназначение того или иного демона.
Так как демон — это процесс, который выполняется в фоновом режиме и обычно находится вне контроля пользователя, то у него нет управляющего терминала.
Процесс — это запущенная программа. В определенный момент времени процесс может либо выполняться, либо ожидать, либо быть «зомби».
В Linux существует три типа процессов:
Процессы переднего плана (или «интерактивные процессы») — это те процессы, которые запускаются пользователем в терминале.
Фоновые процессы (или «автоматические процессы») — это объединенные в список процессы, не подключенные к терминалу; они не ожидают пользовательского ввода данных.
Демоны (англ. «daemons») — это особый тип фоновых процессов, которые запускаются при старте системы и продолжают работать в виде системных служб; они не умирают.
Процессы переднего плана и фоновые процессы не являются демонами, хотя их можно запускать в фоновом режиме и выполнять некоторую работу по мониторингу системы. Для данных типов процессов необходимо участие пользователя, который бы их запускал. В то время как демонам для их запуска пользователь не требуется.
Когда завершается загрузка системы, процесс инициализации системы начинает создавать демоны с помощью метода fork(), устраняя необходимость в терминале (именно это подразумевается под «отсутствием управляющего терминала»).
Я не буду вдаваться в подробности работы метода fork(), отмечу лишь, что, хотя существуют и другие методы, традиционный способ создания дочернего процесса в Linux заключается в создании копии существующего процесса (посредством своеобразного «ответвления»), после чего выполняется системный вызов exec() для запуска другой программы.
Примечание: Термин «fork» не был взят с потолка. Он получил свое название от метода fork() из Стандартной библиотеки языка программирования Си. В языке Си данный метод предназначен для создания новых процессов.
Примеры демонов в Linux
Наиболее распространенный способ идентификации демона в Linux — это поиск процесса, имя которого заканчивается буквой d. Есть много способов увидеть работающих демонов. Их можно отследить в списках процессов через такие команды, как: ps , top , htop , а также pstree .
Команда pstree показывает процессы, запущенные в настоящее время в нашей системе, и отображает их в виде древовидной диаграммы. Откройте терминал и введите следующую команду:
Вывод команды pstree — это довольно хорошая иллюстрация того, что происходит с нашей системой. Перед нами появился список всех запущенных процессов, среди которых можно заметить и несколько демонов: cupsd, dbus-daemon, kdekonnectd, packagekitd и некоторые другие.
Вот несколько «популярных» примеров демонов, которые могут работать в вашей системе:
systemd — это системный демон, который (подобно процессу init) является родителем (прямым или косвенным) всех других процессов, и имеет PID=1.
rsyslogd — используется для регистрации системных сообщений. Это более новая версия syslogd, имеющая несколько дополнительных функций.
udisksd — обрабатывает такие операции, как: запрос, монтирование, размонтирование, форматирование или отсоединение устройств хранения данных (жесткие диски, USB-флеш-накопители и пр.).
logind — крошечный демон, который различными способами управляет входами пользователей в систему.
sshd — демон, отвечающий за управление службой SSH. Используется практически на любом сервере, который принимает SSH-соединения.
ftpd — управляет службой FTP. Протокол FTP (сокр. от англ. «File Transfer Protocol») является широко используемым протоколом для передачи файлов между компьютерами, где один компьютер действует как клиент, другой — как сервер.
crond — демон планировщика заданий, зависящих от времени. С его помощью можно выполнять обновление программного обеспечения, проверку системы и пр.
Версии происхождения термина «daemon»
Есть несколько версий происхождения термина «daemon»:
Научная версия: Использование термина «daemon» в вычислительной технике произошло в 1963 году. Project MAC (сокр. от англ. «Project on Mathematics and Computation») — это проект по математике и вычислениям, созданный в Массачусетском технологическом институте. Именно здесь термин «daemon» вошел в обиход для обозначения любого системного процесса, отслеживающего другие задачи и выполняющего предопределенные действия в зависимости от их поведения. Процессы были названы термином «daemons» в честь демона Максвелла.
Примечание: Демон Максвелла — это результат мысленного эксперимента. В 1867 году Джеймс Клерк Максвелл представил себе разумное и изобретательное существо, способное наблюдать и направлять движение отдельных молекул в заданном направлении. Цель мысленного эксперимента состояла в том, чтобы показать возможность противоречия второму закону термодинамики.
Талисман BSD: В операционных системах BSD есть свой талисман — красный чертёнок (этакая игра слов «daemon/demon»). BSD-демона зовут Beastie (Бисти), и его часто можно увидеть с трезубцем, который символизирует системный вызов fork(), активно используемый программами-демонами.
Примечание: «Бисти» по звучанию напоминает BSD (произносится как «Би-Эс-Ди»). При этом beastie является уменьшительной формой от слова beast (зверь).
Теологическая версия: Сторонники данной версии считают, что первоначальной формой произношения слова «daemon» было «daimon», что обозначает (по одной из версий) ангела-хранителя. В то время как «daemon» — помощник, «demon» — злой персонаж из Библии.
Примечание: Также «daemon» иногда произносится как «day-mon» или как рифма к слову «diamond».
Аббревиатура: Некоторые пользователи утверждают, что термин «daemon» является аббревиатурой от «Disk and Execution Monitor».
Поделиться в социальных сетях:
Android – это Linux? Сравнение Android и Linux
Источник
Демоны Linux и управление ими
Демоны обычно имеют конфигурационные файлы и выделяются тем. что могут запускаться и останавливаться пользователем вручную командами вида: service deamonname start / service deamonname stop / service deamonname restart
Чтобы найти конфигурационные файлы пакета можно использовать whereis:
Вывод команды примерно следующий:
apache2: /usr/sbin/apache2 /usr/lib/apache2 /etc/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz
Также информацию о конфигурационных файлах часто можно найти в man программного пакета
В случае с самым распространенным веб-сервером — конфигурационные файлы находятся в /etc/apache2
Обычно файлы снабжают комментариями (обозначаются знаком решетки # в начале строки), в комментариях могут приводиться примеры конфигурации программных пакетов и рекомендуемые для различных ситуаций значения директив.
В конфигах задается логирование — в случае если пакет работает неправильно — включить логирование или изменить его параметры.
Часто демоны работают от имени системных пользователей, специально для них создаваемых — так apache может работать от имени пользователя www-data или от имени пользователя apache.
Демоны Linux стартуют вместе с системой, родительским процессом для них является init
Запуск демона с использованием init синтаксиса:
Инициализационные скрипты демонов, управляемых init, можно посмотреть в каталоге /etc/init.d/
В инициализационных скриптах указываются, в частности, runlevel-ы на которых демон стартует и останавливается.
Runlevels в Linux
0 Выключенное состояние (ядро не функционирует)
1 Режим использования одним пользователем (ядро функционирует, возможна авторизация, никакие сервисы не работают)
2 Режим, позволяющий работать нескольким пользователем и сети
3 Мультипользовательский режим с сетью
5 Мультипользовательский режим с сетью и GUI
6 Перезагрузка
В современном Linux init используется все реже поскольку данная система является устаревшей — она была создана довольно давно и плохо работает при необходимости обрабатывать данные поступающие в несколько потоков.
Замещается init системами upstart и systemd
upstart замещает все инициализационные скрипты конфигурационными файлами, они находятся в /etc/init
Управляются демоны, использующие upstart, следующим образом:
В 2014 году наметился переход от upstart к systemd. Многие дистрибутивы сейчас используют одновременно несколько систем инициализации.
Среди использующих systemd — Fedora:
Также используя systemd можно легко добавлять демоны в автозагрузку (демон будет стартовать при старте системы)
В init и upstart для того чтобы включить/выключить автозагрузку достаточно добавить/удалить инициализационный файл или скрипт из каталога /etc/init в init и /etc/init.d в upstart (или воспользоваться скриптом update-rc.d — update-rc.d defaults apache2 чтобы добавить сервис в автозагрузку и update-rc.d remove apache2 чтобы его удалить из автозагрузки).
Часто применяется также runit — удобная система, которая также позволяет управлять сервисами (sv s apache2 / sv t apache2 / sv d apache2).
На одной машине могут использоваться демоны, управляемые при помощи различных систем инициализации. Так на сервере часть ПО может запускаться посредством init скриптов, часть — под runit.
Читайте про то, как добавить собственный скрипт, который будет выполняться после старта системы. Часто это бывает нужно чтобы добавить дополнительный функционал и свои скрипты.
Источник