Запущен демон или нет linux

Как узнать откуда запускается демон?

Иногда использую 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

Читайте также:  Просмотр владельца папки linux

Там есть автозапуск, но речь о клиенте, а не о демоне. Настроек запуска демона не нашел.

Ну и переименуй тогда *.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() из Стандартной библиотеки языка программирования Си. В языке Си данный метод предназначен для создания новых процессов.

Читайте также:  How to run bat file in linux

Примеры демонов в 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» — злой персонаж из Библии.

Читайте также:  Чем восстановить hdd linux

Примечание: Также «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.

Читайте про то, как добавить собственный скрипт, который будет выполняться после старта системы. Часто это бывает нужно чтобы добавить дополнительный функционал и свои скрипты.

Источник

Оцените статью