| Управление процессами. Команды kill, ps, top, nice |
|
Предположим, что у вас зависла какая-то программа, например, пусть это будет МС. Хоть и маловероятно (не помню, чтобы МС зависал), но для примера пусть будет так. Принудительно завершить ("убить") процесс можно с помощью команды kill. Формат ее вызова следующий: kill [параметры] PID РГО (Process ГО) — это идентификатор процесса, который присваивается процессу системой и уникален для каждого процесса. Но мы знаем только имя процесса (имя команды), но не знаем идентификатор процесса. Узнать идентификатор процесса позволяет программа ps. Предположим, что наш МС находится на первой консоли. Поскольку он завис, вы не можете более использовать консоль и вам нужно переключиться на вторую консоль (комбинация клавиш <Alt>+<F2>). Зарегистрировавшись на второй консоли, введите команду ps. Она выведет список процессов, запущенных на второй консоли — это будет bash и собственно ps.
Чтобы "добраться" до нужного нам процесса (МС), который запущен на первой консоли, введите команду ps -а или ps -и root. В первом случае вы получите список процессов, запущенных вами, а во втором — список процессов, запущенных от вашего имени (я предполагаю, что вы работаете под именем root). Обратите внимание— вы запустили процессы тс и ps, а от вашего имени (root) система запустила множество процессов. Посмотрите: программа ps выводит также имя терминала (ttyl), на котором запущен процесс. Это очень важно, если на разных консолях у вас запущены одинаковые процессы — ведь можно легко ошибиться и завершить не тот процесс. Теперь, когда мы знаем РГО нашего процесса, мы можем его "убить": # kill 2484
Определение PID программы МС Перейдите на первую консоль после выполнения этой команды — МС на ней уже не будет. Если выполнить команду ps -а, то в списке процессов тс тоже не будет. Вообще-то все эти действия, связанные с вычислением PID процесса, мы рассмотрели только для того, чтобы познакомиться с командой ps. Если вы знаете только имя процесса, то гораздо удобнее использовать команду: # killall <имя процесса> Но имейте в виду, что данная команда завершит все экземпляры этого процесса. А вполне может быть, что у нас на одной консоли находится МС, который нужно "убить", а на другой — нормально работающий МС. Команда killall "убьет" оба процесса. При выполнении команд kill и killall нужно помнить, что они могут убить только те процессы, которые вам принадлежат, если вы работаете от имени обычного пользователя. Если вы работаете от имени пользователя root, то можете завершить любой процесс в системе. Иногда бывает, что система ужасно тормозит. Весь день работала нормально и вдруг начала тормозить. Если вы даже не догадываетесь, из-за чего это случилось, то вам нужно использовать программу top. Она выводит список процессов с сортировкой по процессорному времени. То есть на вершине списка будет процесс, который занимает больше процессорного времени, чем сама система. Вероятно, из-за него и происходит эффект "торможения". На рис. показано, что больше всего процессорного времени (аж 0,3%) занимает программа top. Конечно, в реальных условиях все будет иначе. Выйти из программы top можно, нажав клавишу <Q>. Предположим, что вы работаете с видео, и вам нужно перекодировать файл из одного видеоформата в другой. Конвертирование видео занимает много процессорного времени, а хотелось бы все сделать как можно быстрее и уйти раньше домой. Тогда вам поможет программа nice— она позволяет запустить любую программу с указанным приоритетом. Ясно, чем выше приоритет, тем быстрее будет выполняться программа. Формат вызова команды следующий: nice -n <приоритет> команда аргументы Максимальный приоритет задается числом -20, а минимальный— числом 19. Приоритет по умолчанию равен 10.
Set as favorite
Bookmark
Email This
Hits: 1108 Комментарии (0)RSS feed CommentsНаписать комментарий |