LINUX.ORG.RU

Re: Ограничение количества одновременно запущенных копий программы

Сделай кусок в shm - и там считай :).

eXOR ★★★★★
()

Re: Ограничение количества одновременно запущенных копий программы

Ну, кучя способов есть. lock-файлы например. Ещё можно ipc заюзать, при запуске пытаться коннектиться к предыдущей запущенной копии. Если с фантазией совсем туго, можно ещё отжирать всю доступную память, чтобы следующая копия точно не влезла.

bugmaker ★★★★☆
()

Re: Ограничение количества одновременно запущенных копий программы

Пасиба конечно, но их общее опсание. Как это кодать-то?

Nazgul
() автор топика

Re: Ограничение количества одновременно запущенных копий программы

Конструктивнее - пишешь код, создающий файлик в /var/run (или где еще) + проверку на наличие этого файлика. Если он есть - выдаешь "Кууудаааа, сцуууукооо!!!" и завершаешься.

e
()

Re: Ограничение количества одновременно запущенных копий программы

Так и сделал. Есть проблева - если приложение сегфолтнется?

Nazgul
() автор топика

Re: Ограничение количества одновременно запущенных копий программы

Внутре локфайла - пид. Проверяеш, есть ли с таким пидом и имя такое, как у твоей проги. Если не - значит ты произвёл прогу которая сегфолтицо.

bugmaker ★★★★☆
()

Re: Ограничение количества одновременно запущенных копий программы

ИМХО не совсем однозначно. Но видимо так и придется сделать.

Nazgul
() автор топика

Re: Ограничение количества одновременно запущенных копий программы

А куда однозначнее? Если пида нет - то екнулось, если есть и левый - прога не та => екнулось, если есть и совпадает - то все ништяк. Банальный свитч + 2-3 библиотечных функции.

e
()

Re: Ограничение количества одновременно запущенных копий программы

Открыть сокет на каком-нибудь порту. Экземпляр жив - никто больше не забиндится... Экземпляр сдох = ресурс освободился.

no-dashi ★★★★★
()

Re: Ограничение количества одновременно запущенных копий программы

/var/run/proga.pid ?

ip1981 ☆☆
()

Re: Ограничение количества одновременно запущенных копий программы

> Есть проблева - если приложение сегфолтнется?

Ловить сигнал SIGSEG и чистить за собой?

ip1981 ☆☆
()

Re: Ограничение количества одновременно запущенных копий программы

>>Ловить сигнал SIGSEG и чистить за собой?

>А если ресет?

При старте системы /var/run чистится

tailgunner ★★★★★
()

Re: Ограничение количества одновременно запущенных копий программы

> К klalafuda обратись, он по слухам крут - 1200 EUR и он тебе накодит либку.

что за бунт на корабле?

// wbr

klalafuda ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.