Как проверить скрипт оболочки, если исполняемый файл запущен или нет?

Я поместил исполняемый файл в файл сценария оболочки abc.sh. Теперь я хочу добавить одну строку в этом abc.sh, чтобы узнать, запускается ли она до запуска моего скрипта или нет, и если да, то убивайте этот исполняемый файл.

  • SSH вызывает остановку цикла
  • ключевое слово grom () в bash бросает неожиданный '(' токен
  • Объяснение вывода скрипта
  • Объединение двух частей вместе для создания единого сценария
  • Как выполнить задание cron с циклическим аргументом?
  • Файлы, отсутствующие после использования mv и подстановки параметров в цикле
  • Найдите значение в одном столбце и напечатайте соответствующее значение от другого
  • Есть ли альтернатива использованию rbash для ограничения пользователя в моей системе?
  • 2 Solutions collect form web for “Как проверить скрипт оболочки, если исполняемый файл запущен или нет?”

    Вы можете использовать pgrep для поиска исполняемых файлов с заданным именем процесса:

     $ pgrep firefox 3212 $ pgrep firef 3212 

    Используйте -l для печати имен во втором столбце:

     $ pgrep -l firefox 3212 firefox 

    Используйте параметр -x для соответствия процессам, чье имя точно соответствует шаблону.

     $ pgrep -x firefox 3212 $ pgrep -x firef $ 

    Когда вы возвращаете PID исполняемого файла, вы можете его убить. Вы также можете сделать это за один шаг, используя команду pkill если вы не заинтересованы в значении PID:

     $ pkill -x firefox 

    Он будет убивать процесс с заданным именем. Если такого процесса нет, ничего не произойдет, кроме установки $? переменная до 1.

     # killall executable_name 

    или

     # pkill executable_name 

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

    Interesting Posts

    Как настроить подсказку bash на centos?

    Система управления версиями, аналогичная Bazaar, необходимая для выделенного сервера CentOS 4.8

    Как заставить Samba использовать SMB 3.0?

    solaris 10 + отображать 2 строки после матча grep?

    scp ssh: подключиться к хосту 10.0.0.109 порт 22: нет маршрута для приема потерянного соединения

    Linux: список устройств, у которых нет драйверов?

    Имеет ли смысл использовать журналирующее FS на образ файловой системы, который хранится в файловой системе, которая уже предоставляет журналирование?

    Почему размер увеличивается после копирования?

    Поведение Rsync с измененными файлами

    Освободить некоторые устройства от NAT

    Конфигурация Linux VPS

    Ошибка при запуске скрипта с nohup

    Каталог / файлы, принадлежащие несуществующему пользователю

    Запустите программу с новым libc

    Отключите подсветку ЖК-дисплея, чтобы мышь и клавиатура не разбудили экран

    Linux и Unix - лучшая ОС в мире.