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

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

  • Как преобразовать строку в число, интерпретируемое в определенной базе в сценарии bash?
  • Переместить файл, но только если он закрыт
  • Как обрабатывать специальные символы в имени файла, используя find
  • условие команды иногда целое число иногда строка
  • Выполнение программы в соответствии с последней измененной датой
  • Это хорошая идея, чтобы дополнить сценарий оболочки Perl исключительно для использования регулярных выражений?
  • Извлечь имя файла из другого имени файла.
  • Катить все файлы в папке, включая имя файла, используя цикл for?
  • 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

    Выполнять как .test, а не ./test

    Мне нужно очень небольшое количество Linux Utils. Как мне выбрать Distro?

    Очистка хром-файлов cookie с сайта при загрузке?

    OpenVPN – Ошибка привязки Socket на локальном адресе IP: 1194: Невозможно назначить запрошенный адрес

    Очень слабое беспроводное соединение при установке образа Live Debian

    Файл asound.conf поврежден, не позволяет воспроизвести правильную звуковую карту, в результате она продолжает терпеть неудачу

    SSH дважды и запустить команду, экранируя символ?

    Подключитесь к Samsung Gear 360 в качестве MTP-устройства через командную строку?

    просмотреть файл, содержащий DOS-текст (символы рисования в рамке, терминаторы строк CRLF) и escape-последовательности

    отключение завершения сеанса ssh

    Как проверить / проверить файлы .desktop?

    Чтение и запись в файл из stdin и stdout

    Как просыпаться спящий процесс?

    regex удалить последние четыре символа

    Сброс до конца строки использует неправильный цвет фона в tmux

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