КАТЕГОРИИ: Архитектура-(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) |
Выполнение задач в фоновом режиме
Предостережение Скрипты из директория /etc/rcS.d выполняются на уровнях от 1 до 5, так что вы, как правило, не должны их трогать, если не знаете, что они делают. Если вы случайно отключите ключевой сервис, вам, возможно, придется воспользоваться спасательным диском для того, чтобы ликвидировать ошибку. Вывести информацию о всех выполняющихся процессах можно с помощью команды ps aux: user@desktop ~ $ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 1432 480? S 13:16 0:01 init [3] root 2 0.0 0.0 0 0? SN 13:16 0:00 [ksoftirqd/0] root 3 0.0 0.0 0 0? S< 13:16 0:00 [events/0] .. user 8456 0.3 4.4 34932 22944? S 13:24 2:15 emacs user 22537 0.0 0.3 3720 1560 pts/3 Ss 22:37 0:00 /bin/bash user 8839 0.0 0.1 2644 932 pts/3 R+ 23:01 0:00 ps aux Оставить в выводе предыдущей команды только системные процессы с помощью команды ps aux | grep -v user: user@desktop ~ $ ps aux | grep -v user USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 1432 480? S 13:16 0:01 init [3] root 2 0.0 0.0 0 0? SN 13:16 0:00 [ksoftirqd/0] root 3 0.0 0.0 0 0? S< 13:16 0:00 [events/0] ... root 6989 0.0 0.1 1672 704? Ss Oct25 0:00 /usr/sbin/syslog root 7128 0.0 0.1 2020 716? Ss Oct25 0:00 /usr/sbin/fcron Часть процессов, показанные в квадратных скобках, — это потоки ядра, исполняющие специальные функции. Можно выделить демонов — в столбце терминала они имеют символ «?». Например, системный журнал (syslog) или планировщик задач (cron). 1 Запустим сбор информации обо всех файлах системы с помощью команды find / > files.txt. user@desktop ~ $ find / > files.txt 2 Найдем идентификатор запущенного только что процесса с помощью команды ps aux | grep find, запущенной в другом терминале. user@desktop ~ $ ps aux | grep find user 8178 9.7 0.1 2844 1020 pts/1 R+ 23:45 0:00 find / user 8230 0.0 0.1 2708 736 pts/2 R+ 23:45 0:00 grep find Первая строка содержит необходимый PID. 3 Отправим сигнал завершения этому процессу с помощью команды kill 8178, указав в качестве параметара идентификатор процесса. user@desktop ~ $ kill 8178 Можно убедиться, что на терминале с запущенной командой появились строка «Terminated» и приглашение. Если попытаться завершить системный процесс, например командой kill 1, появится сообщение об ошибке доступа: user@desktop ~ $ kill 1 bash: kill: (1) - Operation not permitted Отправление сигналов системным процессам может производить только суперпользователь. Альтернативным способом отправления сигналов процессам — по имени процесса, а не по PID — является команда killall. 4 Выполнив команду killall bash, мы завершим все командные оболочки, а тем самым и сеансы пользователей. user@desktop ~ $ killall bash До этого мы отправляли только сигнал завершения процесса. Он может перехватываться и игнорироваться программами. Неперехватываемым является сигнал SIGKILL, который может быть отправлен, например, следующей командой: killall -SIGKILL find user@desktop ~ $ killall -SIGKILL find В данном сценарии изучается работа с заданиями командной оболочки, запуск заданий в фоновом режиме. 1 Запустим длительную команду, например find / > files.txt и приостановим её выполнение с помощью нажатия Ctrl - Z. При этом процессу посылается сигнал SIGSTOP. user@desktop ~ $ find / > files.txt
[1]+ Stopped find / > files.txt user@desktop ~ $ Команда приостановлена и запомнена как задача 1 (номер в квадратных скобках). 2 Текущий список запущенных задач командной оболочки можно посмотреть командой jobs. user@desktop ~ $ jobs [1]+ Stopped find / > files.txt 3 Возобновить исполнение задания можно командой fg 1, аргументом которой является номер задания. user@desktop ~ $ fg 1 find / > files.txt Если еще раз приостановить процесс, можно запустить задачу в фоновом режиме: bg 1. user@desktop ~ $ fg 1 [1]+ find / > files.txt & user@desktop ~ $ Тогда можно будет продолжать работу в командной строке. 4 Команды можно сразу запускать в фоновом режиме. При этом необходимо добавить символ «&» (амперсанд) в конец строки команды: find / -name "*.xml" > xml-list & user@desktop ~ $ find / -name "*.xml" > xml-list & [1] 9413 user@desktop ~ $ При этом командная оболочка выводит номер задания и PID созданного процесса. Демон – это задача, выполняющаяся в фоновом режиме, и при запуске машины стартует целая маленькая армия таковых. Бывают демоны управления автоматизированными задачами, демоны для управления питанием и параметрами CPU, демоны для печати и демоны для ведения системных журналов. Некоторые выдают свое происхождение, прибавляя к именам букву «d», другие предпочитают названия-ребусы навроде «binfmpt-support» или «brltty». Говоря о демонах, большинство подразумевает сервисы. Часто они стартуют при загрузке и скромно выполняются в фоновом режиме – но это не обязательно легковесные средства управления системой. Нет причин не считать демонами и полные пакеты приложений. Какие сервисы выполнять, а какие – нет, целиком зависит от вашего дистрибутива и целей его применения. Если вы используете дистрибутив, ориентированный на серверное применение, то весьма вероятно, что в числе демонов будет web-сервер Apache вместе со своей школой приложений-помощников. Это беспардонный побор ваших ресурсов, если web-сервер вам ни к чему, а ведь еще не так давно дистрибутивы типа Mandriva устанавливали и запускали web-сервер по умолчанию. В наши кризисные времена, скорее всего, такого не происходит, но весьма вероятно, что у вас все еще остается что-нибудь ненужное, «крутящееся» в фоновом режиме.
Дата добавления: 2014-10-23; Просмотров: 435; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |