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

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

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 

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

  • Состояние выхода Bash, используемое с PIPE
  • получить первый аргумент CLI после опций в shell scipt
  • Сценарий Bash не заменяет переменную как ожидалось
  • Использование exec в поиске поверх ssh из сценария оболочки
  • Выполнение ряда скриптов в MySQL
  • Зачем избегать тривиальных символов в сценарии оболочки?
  • Катить все файлы в папке, включая имя файла, используя цикл for?
  • Получить имя эмулятора терминала внутри сценария оболочки
  • Создание каталогов из строк файла
  • Как вызвать URL-адрес службы из сценария оболочки bash параллельно?
  • попытка избежать цитат
  • Универсальная альтернативная альтернатива non-bash `time`?
  • Interesting Posts

    Восстановление команды Rm для этой ситуации

    sed + обновить 4 разных IP-адреса в файле hosts в одной команде sed

    Какова цель группы «ssh»?

    При связывании с неопределенной версией библиотеки правильный выбор?

    Что такое «(установите -o posix; set) | меньше "делать?

    Может ли дескриптор файла NFS сохраняться в течение 2 полных дней без каких-либо признаков?

    В чем разница между встроенной командой и тем, что нет?

    Можно ли изменить счет Inode в файловой системе ext4?

    Можно ли использовать команды типа `fg` в shell-скрипте?

    Sony работает с операционной системой? Oracle Linux или Crestron Extron или Minix или OS X?

    Использование Awesome window manager на CentOS 7

    Кто-нибудь использует Red Hat Enterprise Linux для настольных компьютеров или рабочих станций дома?

    Как заставить find следовать большинству, но не всем, символическим ссылкам?

    подсказка спасения grub после загрузки-ремонта

    Застрявший пиксель на X

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