LINUX.ORG.RU

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

bugmaker ★★★★☆
()
Ответ на: комментарий от Nazgul

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

e
()
Ответ на: комментарий от Nazgul

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

bugmaker ★★★★☆
()
Ответ на: комментарий от Nazgul

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

e
()
Ответ на: комментарий от Nazgul

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

no-dashi ★★★★★
()
Ответ на: комментарий от e

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

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

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от tailgunner

Почему-то про flock на самого себя никто не вспомнил.

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