Запретить запуск копии исполняемого файла

Запретить запуск копии исполняемого файла

20.01.2012 10:58:06 Просмотров 28 Источник

Хотелось бы увидеть способ позволяющий запретить запуск второй копии исполняемого файла. При условии, что:

  • файл может быть переименован;
  • процесс может получить SIGKILL;
  • желательно обойтись чистыми средствами unix;
  • желательно, чтобы способ был легко реалезуем как для бинариков, так и для bash-скриптов.
У вопроса есть решение - Посмотреть?

Ответы - Запретить запуск копии исполняемого файла / Запретить запуск копии исполняемого файла

Nicolas Chabanovsky

21.01.2012 12:01:40

Универсальный вариант:

lockfile filename && (execute; rm -f filename)

Вариант для демонов:

start-stop-daemon ...

Вариант для процесса с уникальным неизменяемым именем:

#!/bin/bash
# Подсчитать количество запущеных процессов с именем task (за искючением grep)
# Выйти из скрипта, если это количество больше нуля, так как процесс уже запущен
count=`ps -ef |grep "task" |grep -v grep |wc -l`
if [ $pc -gt 0 ] ; then
    exit 0
fi
./task
Закрыть X