Как посмотреть nohup процессы
Перейти к содержимому

Как посмотреть nohup процессы

  • автор:

Команда nohup в Unix/Linux

nohup — утилита, которая позволяет запустить команду, защищенную от зависания с выходом на non-tty (игнорирует потерю сигналов связи SIGHUP). Если стандартным выводом (stdout) команды является терминал, то он и стандартный вывод ошибок (stderr) перенаправляются с добавлением в файл «nohup.out» в текущей директории; если это невозможно сделать, то перенаправление происходит в файл «$HOME/nohup.out». Если и это невозможно сделать, то команда не запускается совсем. При создании файлов «nohup.out» или «$HOME/nohup.out» команда nohup устанавливает им атрибуты доступа только для владельца этих файлов (группа и остальные пользователи не имеют прав доступа к этим файлам). Если же эти файлы уже существуют, то их права доступа не изменяются.

Команда nohup в Unix/Linux

Некоторая работа или команда занимает много времени. Если вы не уверены, когда закончится задание, лучше оставить работу в фоновом режиме. Все процессы (кроме at и batch), выполняют завершение при выходе из системы. Утилита nohup дает возможность, чтобы при выходе из системы процесс продолжал работу в фоновом режиме. Например:

# nohup command Arg(s) &
  • command: Это имя скрипта или клманды которую запускаете. Так же, вы можете передать аргумент(ы) команде или скрипту.
  • Arg(s) — Это аргумент(ы) для команды или скрипта( можно не прописывать).
  • & : Чтобы nohup работал в фотоновом режиме, используйте & символ.

Приведу очень наглядный пример. Допустим, вам нужно выполнить grep по определенному слову «ddos» и при поступлении данных ( допустим ДДОС или что-то еще), то можно запустить grep с нужным словом для поиска в фоновом режиме. Он будет находить нужные слова и записывать в определенный файл:

# nohup grep ddos * > /home/captain/ddos.txt &
# nohup cat /var/log/nginx/access.log| grep "admin" > /home/captain/bruteforce.txt &

И смотрим на процесс:

# ps -aux | grep nohup

Вы можете завершить команду nohup с помощью команды kill.

Вот еще пример того, как можно запускать сервер nginx в фоновом режиме:

# nohup service nginx start > /dev/null 2>&1&

В этом примере я собираюсь найти все утилиты/скрипты с setuid битом:

# nohup find / -xdev -type f -perm +u=s -print > /home/output.txt &

Обратите внимание, что nohup не изменяет приоритет ; Для этого используйте «nice» команду:

# nohup nice -n -5 ls / > /home/some_output.txt &

Опции nohup в Unix/Linux

Чтобы вывести помощь:

$ nohup --help

Для отображения версии, используйте:

$ nohup --version

А на этом, у меня статья «Команда nohup в Unix/Linux» подошла к завершению.

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

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

Рубрики

  • Arch Linux (167)
  • Commands (36)
  • Debian’s (635)
    • Administration tools Ubuntu (37)
    • Backups Debian’s (7)
    • Database в Ubuntu (58)
    • Games (игры) (1)
    • Monitoring в Debian и Ubuntu (49)
    • Virtualization в Ubuntu / Debian/ Linux Mint (41)
      • Docker (22)
      • Kubernetes (6)
      • KVM (4)
      • OpenVZ (3)
      • Vagrant (5)
      • VirtualBox (6)
      • ArgoCD (1)
      • Concourse (1)
      • Gitlab (1)
      • Jenkinks (4)
      • Spinnaker (1)
      • Apache (32)
      • Cherokee (1)
      • FTP-services (5)
      • Lighttpd (1)
      • Nginx (26)
      • PHP (27)
      • Proxy для Debian’s (2)
      • Tomcat (4)
      • Панели управления в Ubuntu/Debian/Mint (24)
      • Установка и настройка почты на Ubuntu/Debian (12)
      • Хранилища (clouds) (2)
      • Administration tools freeBSD (19)
      • Database во FreeBSD (52)
      • Monitoring во freeBSD (37)
      • Virtualization во FreeBSD (22)
      • VoIP (1)
      • Установка Web сервисов (91)
      • Установка и настройка почты (6)
      • Установка из ports (пакетов) (19)
      • Установка из sorce code (исходников) (23)
      • Непрерывная интеграция (CI) (27)
      • Database в MacOS (36)
      • Monitoring в Mac OS (31)
      • Security (безопасность) (12)
      • Virtualization в Mac OS (30)
        • Docker (19)
        • Kubernetes (6)
        • Vagrant (5)
        • VirtualBox (5)
        • ArgoCD (1)
        • CircleCI (1)
        • Concourse (1)
        • Gitlab (1)
        • Jenkinks (4)
        • Spinnaker (1)
        • Administration tools CentOS (49)
        • Backups RPM’s (4)
        • Database в CentOS (68)
        • Monitoring в CentOS (67)
        • Virtualization в CentOS/ Red Hat/ Fedora (42)
          • Docker (23)
          • Kubernetes (6)
          • KVM (5)
          • OpenVZ (2)
          • Vagrant (5)
          • VirtualBox (6)
          • VMWare (3)
          • ArgoCD (1)
          • Concourse (1)
          • Gitlab (1)
          • Jenkinks (4)
          • Spinnaker (1)
          • Apache (35)
          • Cherokee (1)
          • DNS (3)
          • FTP (10)
          • Nginx (33)
          • PHP (34)
          • Proxy для RedHat’s (2)
          • Tomcat (2)
          • Voice (2)
          • Панели управления в CentOS/Red Hat/Fedora (27)
          • Прокси сервер на CentOS/RHEL/Fedora (4)
          • Установка и настройка почты на CentOS/RHEL/Fedora (14)
          • Хранилища (clouds) (1)

          соц сети

          Unix-Linux- в примерах

          Unix-Linux- в примерах

          Unix-Linux- в примерах

          Архив новостей

          Свежие записи

          • Pull/Push AWS ECR образов через AWS Route53 CNAME 17.11.2021
          • openpgp: signature made by unknown entity в Terraform 09.11.2021
          • Установка Terraformer в Unix/Linux 31.05.2021
          • Установка ArgoCD в Unix/Linux 06.01.2021
          • Установка tfswitch в Unix/Linux 08.12.2020

          Свежие комментарии

          • Александр к записи Закомментировать/Раскомментировать строки vi/vim в Unix/Linux
          • Иван Сбисин к записи Удалить все содержимое файла (очистить файл) в Unix/Linux
          • Ликс к записи Не сохранять команду в history bash
          • Alf к записи Команды mail/mailx в примера на Unix/Linux
          • Глеб к записи Установка Adobe Flash Player в Debian/Ubuntu/Mint

          Как посмотреть nohup процессы

          Все процессы, за исключением at и batch , завершаются, когда вы выходите из системы. Если вы хотите, чтобы после вашего выхода из системы процесс в фоновом режиме продолжал выполняться, то вам необходимо использовать команду nohup . Команда nohup имеет следующий формат:

          nohup command &

          Предположим, вы хотите, чтобы команда grep осуществила поиск во всех файлах в вашем текущем каталоге строки «word» и перенаправила вывод в файл word.list, и затем, не ожидая завершения, вы хотите выйти из системы, то введите следующую строку:

          nohup grep word * > word.list &

          Вы можете завершить команду nohup с помощью команды kill .

          Alex Otwagin 2002-12-16

          Команды Linux: как работает nohup

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

          Nohup — это сокращение от no hangup. Эта команда поддерживает в системах Linux работу процессов даже после выхода из оболочки или терминала. Она предотвращает получение процессами или заданиями сигнала SIGHUP ( Signal Hang UP ). Это сигнал, который отправляется процессу при закрытии или выходе из терминала. В этом руководстве мы рассмотрим команду nohup и покажем, как ее можно использовать.

          Синтаксис команды nohup

          Синтаксис команды выглядит следующим образом:

          nohup command arguments

          Давайте же посмотрим, как работает данная команда.

          Проверка версии nohup

          Вы можете начать с проверки версии Nohup, используя приведенный ниже синтаксис.

          Запуск процесса с помощью Nohup

          Если вы хотите, чтобы ваши процессы/задания работали даже после закрытия терминала, укажите необходимую команду в nohup, как показано ниже. Задания будут по-прежнему выполняться и не будут уничтожены при выходе из оболочки или терминала.

          Согласно приведенному выше выводу результат команды был сохранен в nohup.out. Чтобы убедиться в этом, запустите:

          Кроме того, вы можете перенаправить вывод в другой файл, как показано ниже.

          nohup ./hello.sh > output.txt

          Чтобы просмотреть этот файл, введите:

          Чтобы перенаправить в файл и стандартную ошибку, и вывод, используйте атрибут > filename 2>&1 , как показано ниже.

          nohup ./hello.sh > myoutput.txt >2&1

          Запуск процесса в фоновом режиме

          Чтобы запустить процесс в фоновом режиме, используйте символ & в конце команды. В этом примере мы пингуем google.com и отправляем этот процесс в фоновый режим.

          nohup ping google.com &

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

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

          Заключение

          Все процессы, запущенные с помощью команды nohup, будут игнорировать сигнал SIGHUP даже после выхода из оболочки.

          Как только задание запущено с помощью команды nohup, стандартный ввод будет недоступен для пользователя.

          По умолчанию nohup.out используется как стандартный файл для stdout и stderr.

          Команда Nohup в Linux позволяет запускать команды даже после выхода из системы

          Команда Nohup в Linux позволяет запускать команды даже после выхода из системы

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

          Nohup означает «no hang up». Это чрезвычайно полезная команда для запуска процесса даже после выхода из системы.

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

          Что такое команда nohup?

          Nohup можно рассматривать как обертку. Префикс вашей команды с nohup:

          nohup COMMAND ARGS .

          Цель Nohup в том чтобы перехватить и предотвратить SIGHUP сигналы от достижения команды.

          Nohup сначала попытается перенаправить вывод в ./nohup.out или отправит его в ~/nohup.out, если это будет необходимо. Вы также можете решить, куда перенаправить вывод следующим образом:

          nohup COMMANDS >/path/to/output/file

          О nohup говорить особо нечего, у него нет длинного списка опций. Есть только –help и –version.

          Пример использования команды Nohup

          Выполнение скрипта с помощью nohup так же просто, как это.

          nohup ./nhp.sh

          Команда Nohup в Linux позволяет запускать команды даже после выхода из системы

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

          Команда Nohup в Linux позволяет запускать команды даже после выхода из системы

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

          Команда Nohup в Linux позволяет запускать команды даже после выхода из системы

          Вы видите PPID? Это идентификатор родительского процесса. Когда вы запросили закрыть терминал, все дочерние элементы PPID получили сигнал SIGHUP. Nohup не дал этому сигналу дойти до нашего сценария. Родительский процесс завершен, и наш сценарий осиротел. Когда процесс становится осиротевшим, он автоматически получает 1 (systemd или init) в качестве родителя.

          Команда Nohup в Linux позволяет запускать команды даже после выхода из системы

          Как видите, продемонстрировать использование nohup не сложно. Очень простая команда. Вы можете разветвлять процесс в фоновом режиме следующим образом:

          nohup ./nhp.sh &

          Вы также можете решить, куда будет перенаправлен вывод:

          nohup ./nhp.sh >/path/to/file &

          Обратите внимание, что если вы выключите или перезагрузите систему Linux, она убьет команду. Когда вы запрашиваете завершение работы или перезагрузку, все процессы получают SIGTERM, а затем SIGKILL . Эти сигналы не будут перехвачены Nohup.

          Nohup через соединение SSH

          Одно из применений, которое часто приходит на ум сразу, когда вы изучаете nohup — это возможность запуска процесса на удаленном компьютере через SSH. Логично, что выполнение команды с nohup позволит вам выйти из вашего SSH-соединения, и процесс все равно будет запущен.

          nohup COMMAND &

          Одна из распространенных проблем заключается в том, что иногда SSH «зависает» при выходе из системы. Это связано с тем, что SSH часто отказывается терять любой поток данных в фоновые процессы и из них. Затем он будет «зависать», пока процесс не будет завершен.

          Эту проблему часто можно решить, перенаправив все 3 потока данных.

          nohup COMMAND >./nohup.out 2>./nohup.err

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *