Intereting Posts
Как захватить stdin в переменную без удаления любых завершающих строк? Проблемы с цветами после обновления до Debian Stretch (vim 8.0) Нет встроенного звука на Dell Optiplex SX-280 после установки Linux Mint Petra Будет ли обновление yum Fedora установить «текущую» или бета-версию ядра и вызвать проблемы? Быстрый способ скопировать большой файл в локальной сети `ssh-agent` запрашивает парольную фразу после ее добавления «Невозможно выделить память» при чтении с ленты SCSI Элементарная ОС: случайно установленный экран входа в Ubuntu Новые пользователи не могут подключиться к серверу через SSH Как правильно настроить DNS. , , с концептуальной точки зрения Как использовать dnstraceroute? Как разбирать файл с конца в awk Как помнить метаданные местоположения окна (всегда в видимой рабочей области) Bash: отфильтровать недействительные команды из истории, в частности пароли Плохой IP-маршрут после перезагрузки сети

Как мне получить PID моего основного процесса (а не одного из его работников)?

Я использую CentOS 7. Я пытаюсь написать скрипт для запуска и остановки процесса пумы, но я не могу понять, как получить «мастер» PID, если даже этот термин правильный. В приведенной ниже команде

[rails@server myproject_production]$ ps aux | grep puma rails 15767 0.0 1.2 437904 13612 ? Sl 17:20 0:00 puma 3.11.4 (tcp://0.0.0.0:3000,unix:///home/rails/myproject_production/shared/sockets/puma.sock) [myproject_production] rails 15779 0.6 7.6 1061248 80688 ? Sl 17:20 0:05 puma: cluster worker 1: 15767 [myproject_production] rails 15781 0.6 7.7 1061248 80876 ? Sl 17:20 0:05 puma: cluster worker 2: 15767 [myproject_production] rails 15785 0.6 7.4 1061964 78488 ? Sl 17:20 0:05 puma: cluster worker 3: 15767 [myproject_production] rails 15880 0.7 7.4 1059612 78592 ? Sl 17:22 0:05 puma: cluster worker 0: 15767 [myproject_production] rails 17106 0.0 0.1 112612 1064 pts/0 S+ 17:33 0:00 grep --color=auto puma 

Основной PID “15767”. Если я убью это, все другие процессы пумы умрут. Как мне написать команду, чтобы получить taht в переменной скрипта?

Используйте pgrep вместо фильтрации вывода из ps . Я думаю, что в вашем случае pgrep -f '^([^ ]*/)?puma ' будет соответствовать правильному процессу, но немного поэкспериментируйте, чтобы убедиться, что вы получаете то, что хотите, и не более.

Убедившись, что pgrep находит процесс, который вы хотите убить, замените pgrep на pkill .