управление процессами линукс

задняя часть Linux Командная строка Shell

предисловие

Только лысина может стать сильнее

Оглядываясь назад на фронт:

Это основное объяснение заключается вУправление процессами под Linux.

Тогда давайте начнем.Если в статье есть ошибки, пожалуйста, потерпите меня и поправьте меня в комментариях~

Заявление: основано на Centos6.9

1. Процессы под Linux

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

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

  • Процесс наследует UID, GID от пользователя, выполняющего его, таким образомОпределение доступа и доступа к файловой системе.

Linux не может одновременно обрабатывать несколько запросов задач (заданий) на одном ЦП, ноТехнология «разделения времени»для обработки этих запросов задач.

Используйте PID, чтобы различать разные процессы

  • после запуска системыПервый процесс инициализируется, его PID равен 1. init — единственный процесс, который запускается непосредственно ядром системы.
  • Каждый процесс, кроме init, имеетродительский процесс(идентификатор PPID)
  • Каждый процесс имеет еще четыреИдентификационные номера, связанные с пользователями и группами
    • реальный идентификатор пользователя (RUID)
    • реальный идентификатор группы (RGID)
    • Действующий идентификационный номер пользователя (действующий идентификатор пользователя, EUID)
    • Идентификатор группы эффектов (EGID)
  1. Роль RUID и RGID:Определите пользователя и группу, которая запускает этот процесс..
  2. Роль EUID и EGID:Определить права процесса на файлы, к которым он обращается.

Тип процесса:

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

Как запускается процесс:

  • Ручной метод: используйте пользовательский интерфейс, предоставляемый операционной системой.
    • стойка регистрации
    • За кулисами (&)
  • Метод планирования: Выполнение в соответствии с заранее указанным временем
    • at
    • batch
    • cron

Процесс переднего плана:

  • Относится к программе, которая управляет стандартным вводом/выводом, и оболочка временно приостанавливается во время работы программы,Не возвращайтесь в оболочку, пока программа не завершит работу. Во время этого процесса пользователь больше не может выполнять другие программы.

закулисный процесс:

  • ПользовательНе нужно ждать завершения работы программыможетвыполнять другие программы. Чтобы запустить фоновый процесс, добавьте «&» в конце командной строки.

Отличие процесса от работы:

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

С учетом вышеуказанных знаний мы можем нарисовать такую ​​блок-схему:

1.1 Общие команды для управления процессами

использоватьpsКоманда для просмотра информации о состоянии процесса:

  • ps -ef
  • ps aux

psОписание параметра команды:

psОписание вывода команды:

Есть еще несколько часто используемых команд:

  • Продолжить выполнение процессов после выхода из системы:nohup 命令 [选项] [参数] [输出文件] &
    • Студенты, которые использовали SpringBoot для развертывания пакетов jar в Linux, должны быть знакомы с приведенной выше командой~
  • убить процесс:kill pid -9
  • free: просмотр использования памяти
  • top: просмотр обновленной информации о системных процессах в режиме реального времени.
  • Приоритет планирования процессаniceЗаказ:
  • Настройте приоритет после запуска процесса:reniceЗаказ.

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

  • Временно остановить запущенную программу ИспользоватьCtrl+z
  • Укажите номера и названия должностей:jobs
  • Возобновление работы в фоновом режиме:bg [%作业号码]
  • Возобновление работы на переднем плане:fg [%作业号码]
  • Отправить сигнал:kill -[信号] pid

1.2 Практические вопросы процесса

Войдите в систему с учетной записью root, запустите команду ps, используйте -a и -af для параметров; просмотрите результаты сравнения и сделайте снимки экрана; запустите команду ps, параметр -ef, просмотрите результаты; запустите ps, опция au, наблюдайте за результатами и делайте скриншоты.

Переключитесь на учетную запись jkXX, перечислите команду /usr/bin/passwd в длинном формате и просмотрите атрибуты разрешений команды; запустите команду passwd в фоновом режиме; запустите команду ps с параметром -ao и параметры user, pid, ruid, euid, tty, cmd, наблюдайте за результатами и делайте скриншоты

Переключитесь на учетную запись peter и выполните команду ls -l /usr/bin | more & в фоновом режиме, чтобы увидеть результаты; дважды выполните приведенную выше команду, чтобы увидеть результаты; выполните команду ps с параметром au, чтобы увидеть, какие процессы выполняется; выполнить командные задания, посмотреть, какие задания выполняются; перевести фоновую команду на передний план через команду fg, чтобы завершить ее, и наблюдать за оставшимися заданиями; пока все задания не закончатся.

Переключитесь на учетную запись jason, используйте команду nice, чтобы запустить программное обеспечение для редактирования vi в фоновом режиме, увеличьте приоритет на 10, используйте команду ps с параметром -l, чтобы соблюдать приоритет процесса vi; используйте команду nice для запуска программное обеспечение для редактирования vi в фоновом режиме, приоритет снижен на 10. Наблюдайте за результатом, почему это не удается, переключитесь на учетную запись root, используйте команду nice, чтобы запустить программное обеспечение для редактирования vi в фоновом режиме, и уменьшите приоритет на 10;

Что означает TTY, отображаемый в команде ps?

Ответ: tty означает символьный терминал.

В выходных данных команды ps какой процесс находится в состоянии выполнения? Какой процесс находится в состоянии покоя?

Ответ: Процесс команды ps au находится в рабочем состоянии, обозначенном буквой R, остальные находятся в спящем состоянии.

Что такое euid команды passwd и чьи разрешения она должна получить во время выполнения?

О: euid равен 0, во время выполнения он должен получить разрешение владельца файла root.

如果用chmod命令把passwd命令的suid属性去掉,在普通账户下运行passwd命令,可以修改密码吗? Зачем?

Ответ: Нет, так как команда passwd должна изменить теневой файл, теневой файл принадлежит пользователю root, а обычная учетная запись запускает команду passwd без получения полномочий пользователя root и не может изменять теневой файл.

Команда nice уменьшает значение приоритета, какие разрешения требуются?

A: Требуются привилегии пользователя root

Во-вторых, процесс демона

всегда включенПрограммы, которые работают в фоновом режиме и отвечают на законные запросыВызывается демоном (Daemon) процессом. демонНе запускается пользователем и не связан с терминалом.

  • Реальная работающая система обычно имеет несколько запущенных процессов демона, и процессы демона, работающие в каждой системе, различны.
  • Они будут работать до тех пор, пока система не выключится, если только программа не будет прервана или завершена вручную.
  • Демоны UNIX/Linux называются «службами» в системах Windows.

Классификация демонов:

  • системный демон
    • Демон запланированных задач: например, atd, crond
    • Демон системного журнала: например, rsyslogd
    • демоны очереди печати: например, cupsd, lpd
    • Демон настройки параметров сети: например, сеть
  • Сетевой демон:
    • Различные сетевые протоколы слушают демона
    • Такие как: sshd, httpd, postfix, vsftpd
  • Сетевой суперсервер (Supper Server)
    • Например: xinetd или inetd

Внедрение супер сервераxinetd:

  • Для каждой сетевой услуги, которую должна предоставлять система, она должна бытьЗапустите демон, который прослушивает соединения на определенном порту., что обычно означает пустую трату системных ресурсов.
  • Чтобы избежать системырастрата ресурсовБыл представлен «суперсервер». После запуска суперсервера он одновременно прослушивает все порты управляемых им служб.
  • Когда клиент делает запрос на обслуживание
    • супер серверсудитьДля какой службы этот запрос, а затемвключидемон, соответствующий этой службе
    • Процесс службы, сгенерированный суперсервером, обрабатывает запрос клиента при обработкеконцы с концамиэтот сервисный процесс
    • Сам супер серверпродолжать следить за другимиЗапрос на обслуживание

Как запускается демон:

  • Независимый запуск
    • Независимо работающий демон управляется сценарием инициализации, который хранится в/etc/rc.d/init.d/Под содержанием
    • всеСистемные службы работают независимо. Такие как: crond, syslogd и т.д.
    • НемногоОбычно используемые сетевые демоны запускаются независимоиз. Например: httpd и т. д.
  • Переходный пуск
    • Демон, запускаемый сетевым суперсервером (xinetd), существует файл конфигурации для демона, управляемого xinetd./etc/xinetd.d/Под содержанием
    • Основной файл конфигурации по умолчанию для xinetd:/etc/xinetd.conf
    • Немногоредко используемыйСетевой демон запускается xinetd, например: telnet, tftp и т. д.
    • xinetd сам по себе является автономным демоном

2.1 Общие команды для управления демонами

chkconfigФункция команды

  • Добавить указанную новую услугу
  • очистить указанную службу
  • показать службы, управляемые chkconfig
  • Изменить уровень запуска службы
  • Проверьте статус запуска службы

chkconfig --listБудет отображен соответствующий уровень выполнения:

  • 0: выключение
  • 1: Один пользователь
  • 2: Многопользовательский без сети
  • 3: режим командной строки
  • 4: не используется
  • 5: GUI (режим графического рабочего стола)
  • 6: перезагрузка

использоватьntsysvУправление демонами

использоватьserviceУправление демонами

  • service --status-all
  • service server-name status
  • service server-name start|stop|restart

2.2 Демонические упражнения

Установите инструмент демона ntsysv и запустите его; через интерфейс ntsysv отмените автоматический запуск crond и используйте команду chkconfig, чтобы проверить, была ли отменена автоматическая работа crond; используйте команду chkconfig, чтобы настроить crond на запуск и запуск , и проверяйте результаты через ntsysv, наблюдайте за результатами и делайте скриншоты

Отредактируйте основной файл конфигурации xinetd, измените ссылку instances = 2, перезапустите xinetd; используйте putty для подключения к linux в режиме telnet, используйте команду pstree для наблюдения за количеством процессов telnet, запущенных xinetd; продолжайте открывать ссылку telnet до тех пор, пока соединение превышает лимит

Отредактируйте файловые службы системной службы, измените порт службы telnet на 27, перезапустите xinetd, используйте шпатлевку для подключения к Linux в режиме telnet, отобразите текущую сетевую ссылку, восстановите порт службы telnet по умолчанию и проверьте, наблюдайте за результатами. и делать скриншоты.

Можно ли изменить порт службы telnet? Если его можно изменить, то на что следует обратить внимание при подключении к телнет-сервису?

О: Порт службы telnet можно изменить. При подключении к службе telnet следует учитывать, что номер порта изменяется на номер порта, предоставляющий службу telnet.

Нужно ли перезапускать службу xinetd, чтобы изменить файл конфигурации telnet? Зачем?

О: Вам необходимо перезапустить службу xinetd, поскольку xinetd, как суперсервер, отвечает за управление запуском службы telnet, а также проверить файл конфигурации службы telnet. Когда файл конфигурации службы telnet изменен, службе xinetd необходимо знать об изменении файла конфигурации, и перезапуск приведет к повторному чтению содержимого файла конфигурации, чтобы сделать его эффективным.

Почему Telnet может видеть результат выполнения программы-скрипта?

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

Является ли результат открытия демона, запущенного с помощью команды ntsysv и команды chkconfig, одинаковым? какая разница?

Ответ: Команда ntntsysv для закрытия процесса демона изменяет только переключатель процесса демона уровня запуска текущего пользователя, а именно переключатель процесса демона режима командной строки уровня запуска № 3. Команда chkconfig изменяет все переключатели на уровнях 3, 4 и 5 по умолчанию, и chkconfig также может указать переключатель демона для определенного уровня запуска.

3. Планируйте автоматизированные задачи

Демон, который планирует задачи:

  • atd
  • crond

Несколько команд для планирования запланированных задач:

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

демон 3.1atd

демон atd отвечает заКонтролировать выполнение разовых задач, параметры выполнения демона atd/etc/sysconfig/atd

Контролируйте использование обычных пользователей

  • как/etc/at.allowсуществует, только перечисленные там пользователи могут использовать
  • как/etc/at.allowне существует, проверьте/etc/at.deny, не всем пользователям, перечисленным в нем, разрешено использовать
  • Если ни один файл не существует, только пользователь root может использовать его.
  • пустой/etc/at.denyфайл, который могут использовать все пользователи (по умолчанию)

как пользоваться:

  • установить командуyum install at
  • начало atdservice atd start
  • Просмотр службы atdchkconfig --list | grep atdилиps -aef | grep atd
  • atФормат и параметры командыat [-q 队列] [-f 文件名] 时间

3.2cron

  • Демон crond отвечает за мониторингПериодическая задачаисполнение
  • Файл конфигурации параметров выполнения демона crond/etc/sysconfig/crond

Контролируйте использование обычных пользователей

  • как/etc/cron.allowсуществует, только перечисленные там пользователи могут использовать
  • как/etc/cron.allowне существует, проверьте/etc/cron.deny, не всем пользователям, перечисленным в нем, разрешено использовать
  • Если ни один файл не существует, только пользователь root может использовать его.
  • пустой/etc/cron.denyфайл, который могут использовать все пользователи (по умолчанию)

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

  • /etc/crontab: это файл в формате crontab (man 5 crontab)
  • /etc/cron.d/*: это файл в формате crontab (man 5 crontab)
  • /var/spool/cron/*: это файл в формате crontab (man 5 crontab)
  • /etc/anacrontab: это файл в формате анакронтаб (man 5 анакронтаб)

3.3 Расписание автоматических упражнений

Установите службу выполнения задач по расписанию и запустите ее; проверьте информацию о сетевой карте во время послеобеденного чая; включите брандмауэр через две минуты; перезапустите сервер в 2:00 1 июня 2019 г.; закройте eth1 завтра в 21:00. ; используйте команду, чтобы проверить запланированные задачи, которые ожидают; используйте at -c, чтобы проверить конкретное содержимое ожидающих задач; удалите одну из задач и посмотрите результаты. Наблюдайте за результатами и делайте скриншоты

Отредактируйте файл myatXX (XX — две последние цифры номера студента) и последовательно выполните следующие команды: вернуться в домашний каталог пользователя, просмотреть имя учетной записи пользователя, просмотреть все процессы, запущенные в текущей системе, и сохранить записи в файл ps.log Medium, добавить в файл запланированное задание на выполнение команды на 17:00, посмотреть результат и сделать скриншот

Войдите в систему с обычной учетной записью jsjXX, добавьте запланированную задачу и закройте eth0 завтра в полдень; измените соответствующий файл конфигурации команды at, запретите jsjXX выполнять команду at и протестируйте ее.

Измените файл crontab и добавьте новую периодическую задачу.Требования следующие: каждые 6 часов сохранять информацию о порте, который прослушивает сервер, в файл /root/net.txt, каждую пятницу или утро 10-го, 20 и 30 числа С 21:00 до 15:00, на 10-й минуте каждого часа очищать все файлы в каталоге /tmp

Добавьте скрипт, который требует: выполнять эту задачу каждый месяц, находить файлы в каталоге /home, которые не изменялись в течение 30 дней, и удалять их; имя скрипта clean-home

Войдите в учетную запись jsj08 и с помощью команды crontab -e напишите периодическую задачу, которую требуется выполнять последовательно каждые 2 минуты: отображать текущее системное время; отображать имя учетной записи; отображать информацию о процессе текущего учетная запись; все результаты вышеприведенных команд находятся в режиме добавления Сохраните его в файл в домашнем каталоге пользователя, имя файла — myplanXX (XX — две последние цифры студенческого номера учащегося). Проверить письменные задания с помощью crontab -l

Нужно ли файлу myatXX изменять разрешения перед его выполнением?

Ответ: нет. Служба atd просто считывает содержимое из файла myatXX. Фактическая выполненная команда будет храниться в другом файле. Мы можем использовать команду at -c, чтобы увидеть содержимое фактического исполняемого файла.

В каком каталоге находится скрипт? Нужно ли сценарию добавлять исполняемый атрибут?

Ответ: Скрипты размещаются в разных каталогах в соответствии с разными циклами.Этот вопрос выполняется ежемесячно, поэтому он находится в каталоге /etc/cron.monthly. К сценарию необходимо добавить исполняемый атрибут, потому что это настоящий исполняемый скрипт.

Могут ли обычные пользователи изменять конфигурационный файл службы at?

О: Для изменения файла конфигурации at требуются полномочия root, и обычные пользователи не могут изменять файл конфигурации at.

4. Резюме

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

Продолжайте улучшать последнюю интеллект-карту:

Если в статье есть какие-либо ошибки, пожалуйста, поправьте меня, и мы сможем общаться друг с другом. Учащиеся, привыкшие читать технические статьи в WeChat и желающие получить больше ресурсов по Java, могутОбратите внимание на публичный аккаунт WeChat: Java3y.

Оглавление Навигация по статьям: