Как быстро убить linux

Обновлено: 06.07.2024

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

В этой статье мы рассмотрим самые распространенные ошибки при работе с операционной системой, которые приведут ее в неисправность. Мы собрали целых 20 способов убить Linux. Вы узнаете как убить Linux, большинство из них действительно опасны, и не стоит проверять все это на рабочей системе. Теперь перейдем к списку.

1. Переполните файловую систему

Если файловая система, содержащая, каталог /var или /tmp будет переполнена, системные процессы не смогут создавать свои временные файлы, записывать журналы и взаимодействовать друг с другом. Таким образом, большинство процессов просто зависнет. Это может случиться если вы отвели слишком мало места под корневой раздел, из-за накопления кеша менеджера пакетов, рассылки спама на почтовый сервис или если ваш домашний каталог находится на том же разделе, что и корень, переполнение и поломку Linux могут спровоцировать файлы которые вы загружаете.

2. Переустановите Windows

Это обычная политика Microsoft, установщик Windows не разрешает размещение на жестком диске других операционных систем и их загрузчиков. Поэтому если вы переустановите Windows, она перезапишет загрузчик Grub. Но тем не менее переустанавливать Linux нет необходимости, достаточно только восстановить загрузчик Linux. Вы можете использовать для этого Live CD или USB.

3. Переполните память

4 Гигабайта оперативной памяти может показаться достаточным количеством для нормальной работы. Но это только до того времени, пока вы не начнете делать, что-то нестандартное. например, если вы откройте слишком много вкладок в браузере Chromium, больше 50-ти или попытаетесь открыть в gimp фотографию размером 48 мегапикселей. В этом случае может помочь раздел подкачки. Но компьютер будет работать настолько медленно, что спасет ситуацию только жесткая перезагрузка.

4. Следуйте инструкциям на форумах

Веб-форумы полны полезных инструкций, советов, подсказок и команд, но есть некоторые, которые могут принести серьезный ущерб. Возможно, некоторые из опасных команд были даны с самыми лучшими намерениями или были полезны в определенной ситуации. Особенно опасными могут быть команды, выполняемые с помощью sudo или su. Также и неизвестные команды, значение которых вы не понимаете. Взять даже тот самый лоровский патч, с виду безобидная команда, и кто бы мог подумать что она может принести вред.

5. Установите еще один Linux

Это очень похоже на ситуацию с переустановкой Windows. Большинство дистрибутивов очень хорошо обнаруживают Windows и автоматически настраивают двойную загрузку. Но некоторые до сих пор не замечают другой Linux на жестком диске, так что загрузчик вашего дистрибутива тоже может быть затерт.

6. Обновляйтесь как можно реже

Если оставлять дистрибутив нетронутым в течение нескольких месяцев, а затем установить 300+ обновлений за раз, то с вероятностью 70% что-то сломается. Но если сломается, попробуйте потом найти в чем была проблема. Небольшие и частые обновления - лучший способ держать систему в актуальном состоянии. А редкие обновления один из надежных способов сломать Linux.

7. Обновляйтесь вслепую

Никогда не проверяйте список пакетов, которые будут установлены в новой версии системы. Тогда вы не будете иметь ни малейшего представления что пошло не так, если случится ошибка. Чтобы увидеть какие пакеты будут установлены можно использовать менеджер пакетов, тогда вы будете видеть что изменилось и что пошло не так. Также можно посмотреть журнал менеджера пакетов.

8. Используйте тестовое программное обеспечение

Мы все хотели бы использовать новое программное обеспечение сразу, как только оно появилось, но помните о рисках. Новое программное обеспечение плохо протестированно, и теперь тестирование - это ваша работа. Так что, не обновляйте систему и программы до альфа-версий если вам нужно с ними работать.

9. Сотрите /home

Конечно, это не убьет Linux, но вы потеряете все настройки и личные файлы. Вот поэтому рекомендуется хранить /home на отдельном разделе, чтобы если что случиться с корневым, вы не потеряли данные. Так вы можете обновлять, устанавливать и переустанавливать системы, а ваши данные останутся целыми.

10. Потеряйте пароль

Потеря пароля пользователя помешает вам получить доступ к интерфейсу настройки, если у вас не настроен автоматический вход в систему. Если все-таки автоматический вход настроен, вы можете использовать компьютер, но не сможете устанавливать и обновлять программное обеспечение и делать какие-либо другие изменения в системе. Но пароль все еще можно сбросить с помощью LiveCD или даже с помощью Grub, если не установлен пароль. Потеря пароля от зашифрованной файловой системы, означает, что вы уже не вернете свои данные.

11. Установите новое ядро

На первый взгляд, это кажется странным, ведь новое ядро должно быть лучше и безопаснее. Но некоторые устройства используют модули, которые не поставляются для нового ядра особенно это касается графических карт и беспроводных адаптеров. Некоторые дистрибутивы переустанавливают их автоматически, если это возможно, в противном же случае вам придется использовать проводную сеть или же загрузится со старым ядром, чтобы установить все нужные драйверы. Конечно, это все легко исправляется если есть старое ядро, но система сразу не запустится.

12. Попробуйте перейти на PulseAudio

Если вы когда-либо сталкивались со сложностью звуковых систем в Linux, то знаете что это значит. Ваша система будет хорошо работать, пока загадочным образом не сломается. Но мы ведь можем иметь четкую и понятную систему звука для Linux, желательно с минимальным количеством слоев.

13. Установите пакеты от другого дистрибутива

Иногда в вашем дистрибутиве нет пакета, который вы хотите, но есть в другом. Не старайтесь использовать чужие пакеты, особенно для системных компонентов. Вы можете попытаться использовать Debian пакеты в Ubuntu, но когда дело дойдет до RPM, могут возникнуть ошибки.

14. Запустите форк бомбу

Форк бомба - это небольшой скрипт, который очень быстро создает столько процессов, сколько сможет, пока компьютер не зависнет. Самый простой ответ на вопрос как сломать Linux. Единственным решением остается отключение питания. Некоторые дистрибутивы способны предотвращать такую атаку путем ограничения количества процессов от одного пользователя. Если хотите попробовать, вот этот код:

15. Переустановите Linux

Переустановка операционной системы решает большинство проблем в WIndows. Сделайте это в Linux и все что вы получите - это потеря ваших настроек и программ, а также шанса обнаружить проблему и найти решение.

Переустановка отдельных пакетов помогает редко, и если это так, источник проблемы, скорее всего, в конфигурационных файлах в вашем домашнем каталоге.

16. Отключите раздел подкачки

Вы можете думать что с современными 6-8 Гигабайт оперативной памяти, которая, как правило, устанавливается в современные ноутбуки вам ничего не грозит. Но некоторые процессы все еще могут использовать подкачку, например, тот же режим гибернации и сна. Также вы можете неожиданно использовать всю оперативную память, поэтому иметь раздел подкачки очень неплохая идея.

17. Установка из исходных текстов

Если вы хотите последнюю версию как-либо программы или самую новую, еще неизвестную программу, установка из исходников может оказаться единственным вариантом. Но будьте очень осторожны, во-первых командой make install вы засоряете систему, поскольку эти установки не контролируются менеджером пакетов. А во-вторых, в каталогах /usr/lib и /usr/loacl/lib могут накопиться несколько версий библиотек и тогда система может начать вести себя странно.

18. Потеряйте его

Linux используется на устройствах, которые с каждым поколением все меньше, мощнее и удобнее, но их легче потерять. Заманчиво хранить все подробности вашей личной жизни, пароли и векторы доступа на смартфоне и нетбуке. Но нужно принимать во внимание, что все это очень легко потерять. Такое событие не сломает само устройство, но его новый владелец будет иметь доступ ко всем вашим данным, так что будьте осторожны.

19. Относитесь к нему как к Windows

20. Пролейте на него кофе

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

Как убить или прекратить процесс Linux: ультимативное руководство.

Многопроцессорные операционные системы, такие как Linux и BSD, используют несколько методов для максимальной загрузки ЦП. Процесс — это просто исполняемая программа. Поскольку в любой момент времени в Linux запущено значительно больше одного процесса, управление ими чрезвычайно важно. Пользователи регулярно сталкиваются с такими проблемами, как ограничение ресурсов процессора при запуске слишком большого количества программ. Подобные ситуации возникают, когда процессор не справляется с растущим числом процессов. Хотя это не полностью зависит от мощности вашего процессора, работа с зависшими процессами или процессами зомби может быть довольно неприятной. Чтобы облегчить вам жизнь в таких случаях, мы описываем здесь некоторые стандартные способы уничтожения таких процессов.

Мастер управления неотзывчивыми процессами в Linux

Вы узнаете несколько способов как в Linux завершить процесс, который не подает признаков жизни. Если вы юзали Windows, скорее всего вам знаком шорткат Ctrl + Alt + Delete. Точно так же пользователи Mac имеют метод Command + Option + Escape для уничтожения замороженных процессов. Linux гораздо более универсален, чем его аналоги, и предлагает более одного метода для устранения мертвых процессов.

Различные методы убийства мертвого процесса Linux

В основном мы опишем два метода убийства зомби-процессов. Мы будем использовать терминал Linux для первого метода. Для этого сначала нужно идентифицировать id процесса, он же PID, от английского process identifier – идентификатор процесса. После успешного получения мы сможем использовать этот PID, посылая сигнал для уничтожения программы ориентируясь на номер-идентификатор.

Вы также узнаете, как обкашливать такие вопросики, используя графический интерфейс пользователя. Для этого мы собираемся использовать приложение «Системный монитор», доступное в Ubuntu. Хотя это приложение GNOME, аналогичные инструменты доступны и для других сред Linux.

Завершить неотвечающий процесс из командной строки


PID или идентификатор процесса — это уникальный номер, который идентифицирует процесс. Эти номера генерируются ядром Linux непосредственно во время выполнения процессов, и диспетчер операционной системы управляет их процессорной активностью. Поэтому, когда вы вызываете приложение, ядро ​​сначала запускает необходимые процессы и присваивает им эти уникальные значения PID. С процессом может быть связано несколько PID. Более того, у каждого процесса есть один родительский процесс с уникальным PPID (идентификатор родительского процесса).

Итак, если вы сможете узнать этот PPID, то сможете отправлять сигнал уничтожения с помощью программ, разработанных для этой цели. Ниже вы узнаете, как проверить запущенные процессы в Linux и определить их PPID из терминала.

Узнайте информацию о PPID

Вы можете узнать PPID процесса, используя несколько команд управления процессами в Linux, таких как pidof, pstree и pgrep. Давайте рассмотрим их одну за другой и посмотрим, как получить PID процесса Linux.

Способ 1: использование команды ps

Команда ps в Linux отображает все запущенные процессы вместе с другой информацией о процессах, такой как PID, в терминале. Мы можем использовать эту команду для вывода списка всех процессов, а затем отфильтровать определенный процесс с помощью команды grep в Linux. Она должна показать нам номер идентификатора процесса, который нам и требуется.

Давайте подробнее поговорим о том, что происходит на демонстрации выше. Во-первых, мы запустили в фоновом режиме текстовый редактор Nano. Затем мы использовали команду ps вместе с командой grep, чтобы узнать PPID этого редактора. Вывод может содержать несколько идентификаторов процессов, но нас интересует только первый, поскольку это наш PPID. Мы также можем использовать команду Linux awk, чтобы узнать эту информацию, как показано ниже.

Эта команда более гибкая, так как она отфильтрует всю несущественную информацию, и покажет только номер PPID, который мы ищем.


Способ 2: Использование команды pstree

Команда pstree предоставляет нам древовидное представление всех запущенных процессов. Она предоставляет графическое представление списка задач Linux из окна терминала. С помощью этой команды вы можете просмотреть PPID или, при желании, информацию о всех PID процесса. Посмотрите приведенные ниже примеры, чтобы узнать, как использовать pstree для поиска PPID определенного процесса.

Теперь подробности. Во-первых, мы породили процесс в фоновом режиме с помощью первой команды. Затем вторая команда получает PPID этого процесса с помощью команды grep в Linux. Наконец, третья команда показывает нам, как получить это же значение с помощью команды awk.

Способ 3: использование команды pgrep

Команда pgrep является одной из самых простых команд управления процессами в Linux. Он проверяет список всех запущенных процессов и выводит PPID процесса. Она работает путем сопоставления регулярных выражений и очень хорошо подходит для написания шелл-скриптов Linux.

Мы породили nano-процесс аналогично предыдущим примерам. Затем мы получили его PPID с помощью команды pgrep. Как только мы получим это значение, мы сможем выполнить задачу уничтожения мертвого процесса максимально легко.

Способ 4: Использование команды pidof

Команда pidof — это еще один простой, но полезный способ определения PPID процесса Linux. Он отображает как PPID, так и все другие PID, связанные с процессом. Ознакомьтесь с приведенной ниже демонстрацией, чтобы увидеть, как использовать ее на практике.

При использовании команды pidof для проверки запущенных процессов в Linux вы часто будете видеть несколько PID. Обычно в таких случаях первый или последний номер — это PPID, в зависимости от того, находятся они в порядке возрастания или в порядке убывания. Вы можете использовать опцию -s pidof, чтобы избежать этого. Так будет отображено только значение PPID.


Способ 5: использование команды top

Команда top обеспечивает представление в реальном времени всех запущенных процессов в Unix-подобных операционных системах. Вы можете использовать её, чтобы отобразить список задач Linux в вашем терминале и узнать информацию о PID определенного процесса.

Используйте следующие команды для получения PPID определенного процесса из выходных данных команды, приведённой выше.

Поскольку top обеспечивает вывод в реальном времени вместо выгрузки статических данных на экран, мы использовали опцию -n1 и -b для получения статического вывода. Затем вы можете получить информацию о PPID с помощью команды grep или awk.

Убить не отвечающий процесс Linux

Вы можете использовать любой из вышеперечисленных методов, чтобы получить PPID не отвечающего процесса. Как только вы его заполучите, придет время полностью убить процесс. Есть несколько команд, которые позволяют нам сделать это, таких как kill, pkill и killall. В следующих разделах мы по очереди рассмотрим действие каждой.

Способ 1: использование команды kill

Простая и надежная как лом, команда kill, благодаря этим своим свойствам, широко используется администраторами Linux. Ей требуется только PID процесса и сигнал. Ядро убивает / останавливает выполнение процесса на основе этого сигнала. Вы можете использовать следующую команду, чтобы просмотреть все доступные сигналы для команды kill.

Как видите, kill предлагает 64 различных сигнала. Однако в этом руководстве мы обсудим только два из них. Это сигнал 9 (SIGKILL) и сигнал 15 (SIGTERM). SIGTERM или сигнал 15 — это безопасный метод уничтожения не отвечающего процесса. SIGKILL или сигнал 9, с другой стороны, принудительно убивает процесс Linux.

Вышеприведенные команды эквивалентны, и они принудительно завершат процесс с PID 8631. Это PPID процесса «nano» в моей системе. Замените его на PID не отвечающего процесса в вашей системе.

Вышеприведенные команды также эквивалентны и будут корректно завершать процесс. Вот почему может пройти некоторое время, прежде чем процесс будет остановлен. Более того, вам может понадобиться добавить sudo перед командой kill, если процесс принадлежит другому пользователю.


Способ 2: использование команды pkill

Команда pkill является одной из самых универсальных команд управления процессами в Linux. Она позволяет нам уничтожать неотвечающий процесс на основе его имени, PID, владельца или других атрибутов. Это идеальный инструмент для начинающих пользователей или людей, которые не знакомы со многими стандартными командами терминала.

Вы можете использовать любую из перечисленных выше команд pkill для уничтожения зомби-процесса в Linux. Также команда pkill позволяет вам отправлять определенные завершающие сигналы.

Способ 3: использование команды killall

Команда killall позволяет пользователям уничтожать неотвечающие процессы на основе их имен. Так значительно проще, но, при не осторожном использовании, может вызвать серьёзные проблемы. Так как killall завершает процессы, основанные на именах, всегда есть шанс, что вы в конечном итоге убьете процесс случайно. Например, если в вашей системе доступны разные версии nano, первая команда в демонстрации ниже уничтожит их все.

В первом примере показано базовое использование команды killall в Linux. Вторая команда сообщит, успешно ли выполнено задание на уничтожение, а третья команда запросит подтверждение у пользователя, прежде чем убить процесс. По умолчанию killall использует сигнал SIGTERM для процессов уничтожения. Однако вы можете указать сигнал вручную, как показано в последнем примере.

Способ 4: использование удобных однострочников

Истинная красота Linux заключается в том, что он позволяет пользователям создавать сложные комбинации команд в зависимости от их потребностей. Чтобы продемонстрировать это, мы предлагаем вам ознакомиться с несколькими однострочниками в разделе ниже.

Теперь подробнее, в первом примере мы использовали интерполяцию оболочки для передачи PID процесса "nano" команде Linux kill. Второй пример использует несколько повседневных команд терминала и перенаправление ввода / вывода, чтобы завершить процесс. Вы сможете создавать свои собственные изящные однострочники, когда лучше освоитесь с терминалом Linux.


Способ 5: уничтожение нескольких процессов с помощью шелл-скриптов Linux

Иногда пользователи могут захотеть завершить более одного процесса. Мы можем легко автоматизировать такие задачи, написав простые сценарии оболочки. Следующий скрипт извлекает PPID процессов, которые вы хотите уничтожить, а затем завершает их, используя сигналы уничтожения.

Теперь сохраните этот файл и добавьте разрешение на выполнение, введя команду ниже.

Теперь вы можете передать этому сценарию имена процессов, которые вы хотите завершить.

Просто замените аргументы именами не отвечающих процессов Linux в вашей системе.


Завершить неотвечающий процесс из графического интерфейса

Вы также можете завершить неотвечающий процесс из GUI или window X. Мы обсудим два способа сделать это в следующем разделе.

Способ 1: использование приложения xkill

Современные дистрибутивы Linux используют оконную систему X window для предоставления конечному пользователю элегантного графического интерфейса. Существует простой инструмент под названием xkill, который позволяет юзерам закрывать неотвечающее окно графического интерфейса. Это возможно, поскольку в Linux окно заголовка приложения отделено от самого приложения.

Просто зайдите в эмулятор терминала Linux и введите xkill. Он превратит ваш курсор мыши в кнопку X, которую можно использовать для уничтожения любого окна GUI.

Теперь все, что вам нужно сделать, это просто щелкнуть по панели окна не отвечающего приложения, и оно будет убито и мгновенно исчезнет.

Способ 2. Использование приложения System Monitor в Ubuntu

Большинство основных дистрибутивов Linux поставляются с какими-то инструментами мониторинга графического интерфейса, которые позволяют пользователям «графически» завершать зависший процесс Linux. Например, приложение System Monitor в Ubuntu позволит нам интуитивно прекратить не отвечающий процесс. Вы можете просто выбрать мертвый процесс из списка процессов и уничтожить его, щелкнув правой кнопкой мыши по процессу и выбрав опцию уничтожения.

Существует еще много альтернатив этому приложению, и мы уверены, что вы легко сможете найти что-то подобное для своего дистрибутив.

Послесловие

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

Как убить процесс в Linux

Сталкивались ли вы с ситуацией, когда вы запускали приложение, и вдруг, когда вы используете приложение, оно перестает отвечать на запросы и неожиданно вылетает? Вы пытаетесь запустить приложение снова, но ничего не происходит, потому что исходный процесс приложения никогда не завершается полностью.

Ну, это случилось со всеми нами в какой-то момент, не так ли? Решение состоит в том, чтобы прекратить или убить процесс приложения. Но как?

К счастью, в Linux есть несколько утилит, которые позволяют убивать ошибочные процессы.

Основное различие между этими инструментами заключается в том, что они kill завершают процессы на основе идентификатора процесса (PID), killall а pkill команды и завершают запущенные процессы на основе их имен и других атрибутов.

Обычные пользователи могут уничтожать свои собственные процессы, но не те, которые принадлежат другим пользователям, в то время как пользователь root может уничтожать все процессы.


Сигналы убийства системы

kill , killall И pkill послать данный сигнал к определенным процессам или группам процессов. Когда сигнал не указан, каждый инструмент отправляет 15 ( TERM ).

Наиболее часто используемые сигналы:

  • 1 (-HUP): перезагрузить процесс.
  • 9 (-KILL): убить процесс.
  • 15 (-TERM): изящно остановить процесс.

Сигналы могут быть указаны тремя различными способами:

  • используя число (например, -1)
  • с префиксом «SIG» (например, -SIGHUP)
  • без префикса «SIG» (например, -HUP).

Используйте -l опцию для перечисления всех доступных сигналов:



Описанные ниже шаги будут работать на всех дистрибутивах Linux.


Завершение процессов с помощью kill команды

Чтобы прервать процесс kill сначала командой, вам нужно найти PID процесса. Вы можете сделать это , используя различные команды , такие как top , ps , pidof , и pgrep .

Допустим, браузер Firefox перестал отвечать на запросы, и вам нужно убить процесс браузера. Чтобы найти идентификатор процесса, используйте pidof команду:

Команда напечатает все процессы Firefox:

Как только вы узнаете, что Firefox обрабатывает PID для завершения, все они посылают TERM сигнал:


Завершение процессов с помощью killall команды

Команда killall завершает все программы, которые соответствуют указанному имени.

Используя тот же сценарий, что и раньше, вы можете убить процесс Firefox, набрав:

killall принимает несколько параметров, таких как отправка сигналов процессам, принадлежащим данному пользователю, сопоставление имен процессов с регулярными выражениями и время создания. Вы можете получить список всех опций, набрав killall (без каких-либо аргументов) на своем терминале.

Например, чтобы завершить все процессы, запущенные от имени пользователя «sara», вы должны выполнить следующую команду:


Завершение процессов с помощью pkill команды

pkill завершает процессы, которые соответствуют шаблону, указанному в командной строке:

Название процесса не должно быть точным совпадением.


Вывод

Завершение работы не отвечающих программ с помощью команд kill , killall and pkill - простая задача. Вам нужно только знать имя процесса или PID.


Сигналы использовались еще с Bell Labs UNIX в 1970 и сегодня официально определено стандартом POSIX. Когда сигнал поступает на процесс, операционная система прерывает нормальный поток выполнения процесса и обеспечивает уведомление.

Команды kill и сигналы

Вы можете просмотреть все сигналы с помощью команды:

kill -l на macos

kill -l на macos

kill -l на centos

kill -l на centos

kill -l на Debian

kill -l на Debian

Я постараюсь рассказать о всех сигналах, но для самого начала поговорим только о самых важных и часто использующихся.

Основные сигналы

Следующие сигналы являются частью стандарта POSIX. Каждый сигнал макрос, определенный в <signals.h> Файл заголовка системы. Они, как правило, сокращенны, без их SIG- префикса; например SIGHUP часто называют просто как HUP.

SIGKILL – сигнал SIGKILL заставляет процесс прекратить выполнение своей работы немедленно. Программа не может игнорировать этот сигнал. Несохраненный прогресс будет потерян.

Синтаксис команды такой:

Если вы не знаете какой нужно использовать PID приложения которого следует избавиться, то запустите команду:

А если знаете конкретное приложение (например apache), то можно отсеять ненужное и вывести все процессы по данной службе:

И это отобразит все запущенные приложения вместе с его PID-ом(ами).

Например, чтобы убить приложение, я выполните следующую команду:

Перезагурзить конфигурационные файлы или перезапуск утилит:

Особенно полезными сигналы включают HUP, INT, kill, STOP, CONT, и 0.

-s signal_name
Символическое имя сигнала, задающее сигнал для отправки сигнала не по умолчанию.

-l [exit_status]
Если операнд не указан, то показать имена сигналов; В противном случае, написать название сигнала, соответствующего exit_status.

-signal_name
Символическое имя сигнала, задающее сигнал для отправки в TERM по умолчанию.

-signal_number
Неотрицательное десятичное целое, задающее сигнал для отправки в TERM по умолчанию.

Следующие PID-ы, имеют особое значение:
-1 Если суперпользователь, то транслирует сигнал всем процессам; в противном случае вещает на все процессыbelong-
ing для пользователя.

Некоторые из наиболее часто используемых сигналов:

PKill

Так как он соответствует шаблону регулярного выражения, вы также можете ввести часть имени процесса, например:

pgrep -l

Killall

В Gnome, вы можете перезапустить Nautilus с помощью команды:

xkill

Еще сигналы которые используются

SIGABRT

Этот сигнал посылает сигнал процессу, чтобы прервать операцию. ABRT как правило, направлен на сам процесс, когда он вызывает функцию abort() языка программирования С, чтобы сигнализировать аварийное завершение, но он может быть направлен из любого процесса, как и любой другой сигнал.

SIGALRM, SIGVTALRM и SIGPROF

ALRM, VTALRM и / или сигнал PROF отправляется процессу, когда лимит времени, указанный при вызове функции сигнализации (например, setitimer) истекает.

ALRM

Посылается, когда настоящее время или часы с течением времени.

VTALRM

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

PROF

Посылается, когда процессорное время, используемое процессом и системы от имени процесса истекает.

SIGBUS

BUS сигнал посылает процессу, когда это приводит к ошибке шины. Условия, которые приводят к данному сигналу, например, неправильное выравнивание доступа к памяти или отсутствие физического адреса.

SIGCHLD

SIGCONT

Сигнал CONT инструктирует операционную систему, и дает сигнал перезапустить процесс который ранее был приостановлен в режиме СТОП или сигнала TSTP. Одной из важных особенностей этого сигнала является контроль работы в оболочке Unix.

SIGFPE

Сигнал FPE посылает процессу, когда он выполняет ошибочное, арифметические срабатывания, например, такие как деление на ноль.

SIGHUP

SIGILL

ILL сигнал, посылаемый процессу при попытке выполнить вредоносные, неизвестные или привилегированные команды (инструкции).

SIGINT

SIGKILL

Сигнал KILL посылает процессу чтобы он немедленно прекратил работу. В отличие от SIGTERM и SIGINT этот сигнал не может быть захвачен или проигнорирован и принимающий процесс не может выполнить какие-либо очистку после получения этого сигнала.

SIGPIPE

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

SIGQUIT

QUIT сигнал посылается процессу от его управляющего терминала, когда пользователь запрашивает процесс выполнения дампа.

SIGSEGV

Сигнал SEGV отправляется в процесс, когда он делает недопустимую ссылку виртуальной памяти или сбой сегментации, то есть когда он выполняет нарушение сегментации.

SIGSTOP

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

SIGTERM

SIGTSTP

Сигнал TSTP посылается в процесс его управляющего терминала и говорит ему, что нужно временно приостановить. Это обычно инициируется пользователем нажатием Control-Z. В отличие от SIGSTOP, этот процесс может зарегистрировать обработчик сигнала или чтобы игнорировать сигнал.

SIGTTIN и SIGTTOU

В TTIN и TTOU сигналы посылаются процессу, когда он пытается прочитать или записать соответственно с (tty) терминала на заднем плане. Как правило, этот сигнал может быть получен только с помощью процессов находящихся под контролем рабочей панели; демоны не имеют управляющие терминалы и никогда не должны получать этот сигнал.

SIGUSR1 и SIGUSR2

Сигналы USR1 и USR2 отправляются процессу и указывают определенные пользователем условия.

SIGPOLL

Сигнал POLL отправляется в процессе, когда происходит асинхронное событие ввода / вывода.

SIGSYS

Сигнал SYS отправляется в процессе, когда он пропускает плохой аргумент для системного вызова.

SIGTRAP

SIGURG

Сигнал URG отправляется процессу, когда socket имеет срочные или вне диапазона данных, доступных для чтения.

SIGXCPU

Сигнал XCPU отправляется в процессе, когда он использует центральный процессор в течение времени превышающего определенное заданное значение, установленным пользователем. Прибытие сигнала XCPU обеспечивает процессу быстро сохранить все промежуточные результаты и завершиться хорошо, прежде чем он завершиться операционной системы с помощью сигнала SIGKILL.

SIGXFSZ

Сигнал XFSZ отправляется в процессе, когда файл вырастает (превышает заданное значение), чем максимально допустимое значение.

SIGRTMIN to SIGRTMAX

Разные сигналы

Следующие сигналы не стандартизированы POSIX, но иногда используются на некоторых системах.

SIGEMT

Сигнал ЕМТ отправляется в процессе, когда происходит прерывание эмулятора.

SIGINFO

Сигнал INFO отправляется в процессе, когда запрос статуса получен от управляющего терминала.

SIGPWR

Сигнал PWR отправляется в процессе, когда система испытывает сбой питания.

SIGLOST

SIGWINCH

Сигнал WINCH отправляется в процессе, когда его управляющий терминал меняет свой размер.

Отправка сигналов с клавиатуры

Сигналы могут быть отправлены с клавиатуры. Несколько стандартных значений по умолчанию перечислены ниже. По умолчанию сочетания клавиш для отправки сигналов прерывания может быть определен с помощью команды stty.

CTRL-C

CTRL-Z

CTRL-\

CTRL-T

вывод

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Читайте также: