UNIX — универсальная среда программирования | страница 34
>'!' для выхода из редактора >ed, то создается новый процесс-потомок, который является, таким образом, уже внуком для >shell.Иногда процесс выполняется столь долго, что вы уже жалеете, что запустили его. Выключите терминал и идите домой, не дожидаясь его окончания. Но если вы выключите терминал или отсоедините его от сети, то процесс будет уничтожен, даже если применен >&. Специально для такого случая предусмотрена команда >nohup ("no hangup" — без отбоя).
Введите
>$ nohup команда &
и команда будет продолжать выполняться, даже если выйти из системы. Любой результат выполнения команды будет сохранен в файле, называемом >nohup.out. После запуска программы никакая команда >nohup уже не поможет.
Если ваш процесс требует много процессорного времени, вы можете облегчить участь тех, кто работает вместе с вами, запустив его с приоритетом ниже обычного. Это можно сделать с помощью программы >nice:
>$ nice большая-команда &
Команда >nohup автоматически вызывает >nice, поскольку раз уж вы собираетесь выйти из системы, то можете позволить, чтобы ваша команда выполнялась дольше.
Наконец, вы можете дать указание системе запустить ваш процесс в необычное время, скажем, утром, когда все нормальные люди снят, а не работают на машине. Команда называется >at(1):
>$ at
>время любые команды
>какие угодно...
>ctl-d
>$
Это пример типичного использования команды >at, но, конечно, команды можно брать и из файла:
>$ at 3am < файл
>$
Время можно задавать исходя из 24-часового цикла как >2130 или 12-часового как >930pm.
Одним из достоинств системы UNIX является то, что вы можете легко адаптировать ее по своему вкусу либо в соответствии с местными традициями программистского мира. Например, как отмечалось выше, существуют разные стандарты для символов стирания и удаления; по умолчанию используются ># и >@ . Вы можете изменить их в любой момент с помощью команды
>$ stty erase е kill k
где >'e' обозначает нужный вам символ стирания, а >'k' — символ удаления. Однако задавать эти символы при каждом входе в систему — довольно нудное занятие.
На помощь здесь приходит >shell. Если в вашем начальном каталоге есть файл >.profile, интерпретатор будет запускать команды из него при каждом входе в систему перед выдачей первого приглашения. Поэтому можно поместить команды в >.profile для установки требуемой среды, и они будут выполняться всякий раз при входе в систему.