Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Два одинаковых процесса  (Прочитано 3248 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн max-030589

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Два одинаковых процесса
« : 21 Июня 2013, 04:33:05 »
Здравствуйте, есть такая проблема. На серваке есть бд, пользователи бывает запускают сразу по несколько одинаковых процессов (много раз тыкают по одному ярлычку который обращается к бд), тем самым соответственно грузят свои пользовательские компьютеры, и серваку тяжело приходится при этом. Есть ли возможность запретить запуск одинаковых процессов, например дублирующие процессы убивались и оставался только 1 процесс? Спасибо.   

Lifewalker

  • Гость
Re: Два одинаковых процесса
« Ответ #1 : 21 Июня 2013, 05:31:38 »
При запуске процесса №2 на клиенте он сам должен проверять наличие работающего процесса №1 и глушить себя или выдавать предупреждение или активировать окно уже работающего экземпляра . Но это вопрос не к серверу, а к конкретной клиентской программе.

Оффлайн max-030589

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Два одинаковых процесса
« Ответ #2 : 21 Июня 2013, 05:45:46 »
При запуске процесса №2 на клиенте он сам должен проверять наличие работающего процесса №1 и глушить себя или выдавать предупреждение или активировать окно уже работающего экземпляра . Но это вопрос не к серверу, а к конкретной клиентской программе.
В том то и дело что он этого не делает, а просто запускает то количество окон, сколько пользователь и запустил их.

Lifewalker

  • Гость
Re: Два одинаковых процесса
« Ответ #3 : 21 Июня 2013, 06:04:21 »
Ну и чем мы тут можем помочь? Вы даже не назвали, что за программа и операционная система у вас на клиенте стоит. Нам тут хором включить режим телепата?  :coolsmiley:

Оффлайн max-030589

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Два одинаковых процесса
« Ответ #4 : 21 Июня 2013, 07:23:55 »
Ну и чем мы тут можем помочь? Вы даже не назвали, что за программа и операционная система у вас на клиенте стоит. Нам тут хором включить режим телепата?  :coolsmiley:
программа эта Специализированная АИС для федеральной службы судебных приставов, на серваке с АИС стоит Centos, на клиентских машинах Linux Mint 14.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: два одинаковых процеса
« Ответ #5 : 21 Июня 2013, 07:43:37 »
#!/bin/sh

FLAG=/var/run/$(basename $0)

if [ -f $FLAG ]; then
    echo "Скрипт уже выполняется"
    exit 1
fi

touch $FLAG

echo -n "Делаем сложную работу... "
do_work
echo "done"

rm -f $FLAG
exit 0

Есть еще lock для файлов. Скорее всего он должен использоваться. Но мне влом читать документацию

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Два одинаковых процесса
« Ответ #6 : 21 Июня 2013, 07:46:47 »
программа эта Специализированная АИС для федеральной службы судебных приставов
На чём написано? Сорцы есть?

В простейшем случае, меняем команду запуска на
Код: (bash) [Выделить]
bash -c 'pgrep proc_exec || /path/to/proc_exec'

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Два одинаковых процесса
« Ответ #7 : 21 Июня 2013, 08:28:25 »
ТС, идея защиты от повторного запуска достаточно тривиальная.
Если программа сама не блокирует повторный запуск,
то ставят маленькую надстройку над ней.
Надстройка проверяет на повторный пуск
и в зависимости от результата проверки:
- или запускает саму программу
- или не запускает.
Запускают же не саму программу, а надстройку над ней.
Возможно саму программу стоит переименовать, а надстройку назвать как и раньше звали программу.
Но это уже детали.

 

Страница сгенерирована за 0.047 секунд. Запросов: 25.