Приемы профессиональной работы в UNIX



             

УПРАВЛЕНИЕ ВРЕМЕНЕМ - часть 7


at -n 10 echo "do in now plus 10 minutes"

где -n было бы текущим временем, а 10 добавлялось бы к нему.

Другой очевидной областью модификации является наделение at возможностью запоминания периодов времени, превышающих сутки. Это может быть завтрашний день, определенный день или даже определенный месяц. Работа с определенным месяцем может быть не совсем реальной, поскольку командный файл, выполняемый в фоновом режиме в течение нескольких месяцев, потребует громадного количества процессорного времени, а также хранения постоянно возрастающего счетчика идентификаторов процессов, что даст, вероятно, пользователям искаженное представление об активности системы. По достижении максимального номера процесса, снова вернутся младшие номера, так что это не приведет к каким -либо серьезным последствиям. Решение вопроса о том, стоит ли такой ценой достигать вашей цели, зависит от того, считаете ли вы, что ваши требования излишне загружают систему.

ИМЯ: b

b Обработчик фоновых задач

ФОРМАТ ВЫЗОВА

b any_command_with_options_and_arguments (любая команда с опциями и аргументами)

ПРИМЕР ВЫЗОВА

b cg f.c

Компилировать исходный файл в фоновом режиме, где cg - командная строка компилятора, описанная в главе 10.

ТЕКСТ ПРОГРАММЫ b

1 : 2 # @(#) b v1.0 Background task handler Author: Russ Sage 2а Обработчик фоновых задач   4 ($@; echo "^G\ndone\n${PS1}\c") &

ОПИСАНИЕ

Зачем нам нужен b?

Как вы видели в последнем разделе, Bourne shell дает возможность запускать задачи в фоновом режиме выполнения. Это делает символ &. Что же на самом деле происходит, когда мы запускаем что-нибудь в фоновом режиме? Порождается еще один shell, который должен выполнить свою собственную командную строку. После того, как все его команды выполнятся, он завершается. Вы можете определить фоновые задачи по результату работы команды ps. Эти задачи выглядят как интерпретаторы shell, запущенные с вашего терминала, однако их владельцем, или родительским процессом в действительности является команда init, а не ваш регистрационный shell (это справедливо только для shell, к которым применена команда nohup). Интерпретаторы shell, к которым не применялась nohup, принадлежат вашему регистрационному shell. Ниже приводится пример распечатки команды ps для фоновых задач. Командой для выполнения в фоновом режиме была:




Содержание  Назад  Вперед