Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Фоновый режим в Linux. Демоны. Запуск демонов




Приоритеты процессов

Планирование процессов и UNIX основано на приоритете процесса. Планировщик всегда выбирает процесс с наивысшим приоритетом. Приоритет процесса не является фиксированным и динамически изменяется системой в зависимости от использования вычислительных ресурсов, времени ожидания запуска и текущего состояния процесса. Если процесс готов к запуску и имеет наивысший приоритет, планировщик приостановит выполнение текущего процесса (с более низким приоритетом), даже если последний не "выработал" свой временной квант.

Ядро UNIX является непрерываемым (nonpreemptive). Это означает, что процесс, находящийся в режиме ядра (в результате системного вызова или прерывания) и выполняющий системные инструкции, не может быть прерван системой, а вычислительные ресурсы переданы другому высокоприоритетному процессу. В этом состоянии выполняющийся процесс не может освободить процессор "по собственному желанию", в результате недоступности какого-либо ресурса перейдя в состояние сна. В противном случае система может прервать выполнение процесса только при переходе из режима ядра в пользовательский режим. Такой подход значительно упрощает решение задач синхронизации и поддержки целостности структур данных ядра.

Каждый процесс имеет два атрибута приоритета: текущий приоритет, на основании которого происходит планирование, и относительный приоритет, называемый также поправкой приоритета - nice number, который задается при порождении процесса и влияет на текущий приоритет.

Диапазон значений текущего приоритета различен, в зависимости от версии ОС UNIX и используемого планировщика. В любом случае, процессы, выполняющиеся в пользовательском режиме, имеют более низкий приоритет, чем работающие в режиме ядра.

 

Программы, запускаемые из командной строки, начинают работать в приоритетном режиме (foreground). Это позволяет вам видеть данные, выводимые программой, и взаимодействовать с ней. Однако в некоторых случаях вам хотелось бы, чтобы программа работала, не захватывая полностью ваш терминал. Это называется работой программы в фоновом режиме (background), и для осуществления этой задачи существует несколько способов.

Первым способом перевода процесса в фоновый режим является добавление в командную строку амперсанда при запуске программы. Например, допустим, что вы хотите воспользоваться консольным mp3-плеером amp для воспроизведения mp3-файлов, однако в то же время вам нужно работать в том же самом терминале. Следующая команда запустит amp в фоновом режиме:

% amp *.mp3 &

Программа запустится и будет работать как обычно, а вы снова вернётесь в командную строку.

Другим способом перевода процесса в фоновый режим является осуществление этого во время работы процесса. Сначала запустите программу. Во время её работы нажмите Control + z. При этом процесс будет приостановлен. Иными словами приостановленный процесс “ставится на паузу”. Он мгновенно прекращает свою работу, но может быть вновь запущен в любое время. После того, как вы приостановили процесс, вы возвращаетесь в командную строку. Затем вы можете перевести процесс в фоновый режим, набрав:

% bg

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

 

Де́мон (англ. daemon) — в системах класса UNIX — служба, работающая в фоновом режиме без прямого общения с пользователем.

Демоны обычно запускаются во время загрузки системы. Типичные задачи демонов: серверы сетевых протоколов (HTTP, FTP, электронная почта и др.), управление оборудованием, поддержка очередей печати, управление выполнением заданий по расписанию и т. д. В техническом смысле демоном считается процесс, который не имеет управляющего терминала. Чаще всего (но не обязательно) предком демона является init — корневой процесс UNIX.

Есть два демона SMB /usr/sbin/smbd и /usr/sbin/nmbd.

Вы можете запустить демоны Samba из inetd или как автономные процессы. Если вы настраиваете постоянный файловый сервер, тогда они должны запускаться из inetd, так что они будут перезапущены если они закончат работу. Если вы хотите использовать средства SMB время от времени или для помощи в системном администрировании, вы можете запустить их в скрипте /etc/rc.d/init.d или даже вручную, когда вам необходимо.

Для запуска демонов из inetd, поместите следующие строки в конфигурационный файл inetd, /etc/inetd.conf:

 

# SAMBA NetBIOS services (for PC file and print sharing)

netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd

netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd

 

Затем перезапустите демон inetd запуском команды:

kill -HUP 1

Для запуска демонов из системных стартовых скриптов, поместите следующий скрипт в файл называемый /etc/rc.d/init.d/smb и создайте на него символические ссылки с именами указанными в комментариях:

#!/bin/sh

 

#

# /etc/rc.d/init.d/smb - запускает и останавливает сервисы SMB

#

# Следующие файлы должны быть символическими ссылками на этот файл:

# symlinks:

# /etc/rc.d/rc1.d/K35smb (Убивает сервисы SMB при выключении

# /etc/rc.d/rc3.d/S91smb (Запускает сервисы SMB в многопользовательском режиме)

# /etc/rc.d/rc6.d/K35smb (Убивает сервисы SMB при перезагрузке)

#

 

# Source function library.

. /etc/rc.d/init.d/functions

 

# Source networking configuration.

. /etc/sysconfig/network

 

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

 

# See how we were called.

case "$1" in

start)

echo -n "Starting SMB services: "

daemon smbd -D

daemon nmbd -D

echo

touch /var/lock/subsys/smb

;;

stop)

echo -n "Shutting down SMB services: "

killproc smbd

killproc nmbd

rm -f /var/lock/subsys/smb

echo ""

;;

*)

echo "Usage: smb {start|stop}"

exit 1

esac




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 2038; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.