LINUX.ORG.RU

Нужно чтобы только 1 экземпляр программы был в памяти.


0

0

Нужно чтобы только 1 экземпляр программы был в памяти. Как это сделать в GTK программе.. как определить наличие предидущего экземпляра программы при запуске.. и сделать чтобы второй экземпляр сообщил первому о запуске.. так сказать передать первому аргументы командной строки и закрыться.

anonymous

использовать один из вариантов ipc

legk
()

Как тебе уже сказал legk нужно использовать ipc, часто используется pid-файл - файл, расположеный в заранее определенном месте(напр /var/run ) и содержащий pid создателя.

При запуске приложения происходит проверка существует-ли такой файл и жив-ли процес с таким pid.

YesSSS ★★★
()
Ответ на: комментарий от legk

> так жёстко, интересно почему?

Потому что меня раздражает, например, Firefox, который не хочет запускаться с одним профилем дважды на разных DISPLAY. А такое иногда бывает, когда я оставляю запущенный Firefox дома, а потом захожу с работы по ssh и пытаюсь запустить еще один.

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

Специально, чтобы работать с такими вещами, написана libgtkunique

http://guniqueapp.akl.lt/

скоро она будет включена в gtk, а пока можно код скопировать в приложение.

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

>Потому что меня раздражает, например, Firefox, который не хочет запускаться с одним профилем дважды на разных DISPLAY. А такое иногда бывает, когда я оставляю запущенный Firefox дома, а потом захожу с работы по ssh и пытаюсь запустить еще один.

всё работает, нормально запускается второе окно, только что проверил

firefox-2.0, slackware-10.0

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

> всё работает, нормально запускается второе окно, только что проверил

На другом DISPLAY? Хм... Надо проверить, на 2.0 еще не пробовал.

Но изначального моего заявления это не отменяет, а FF был лишь в качестве примера.

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

> Надо проверить, на 2.0 еще не пробовал.

Да, работает. Но... Экземпляр один, и если я делаю File->Quit, то грохается весь экземпляр. Это, в общем, не совсем то, что ожидалось.

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

> Да, работает. Но... Экземпляр один, и если я делаю File->Quit, то грохается весь экземпляр. Это, в общем, не совсем то, что ожидалось.

С другой стороны, если бы он умел работать с двумя экземплярами - это ему пришлось бы ужасно извращаться с разделением доступа. И глючило бы оно безмерно.

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

> если бы он умел работать с двумя экземплярами - это ему пришлось бы ужасно извращаться с разделением доступа.

Да я чо? Я ничо. Я понимаю, что FF писали прожженые виндокодеры, которые считают, что пользователь может быть только локальный и только один и в одном экземпляре и на машине гиг памяти, в котором вольготно можно разместиться, потому как юзер однозадачный и вместе с браузером больше ничего не запускает. Тьфу.

> И глючило бы оно безмерно.

Оно и сейчас безмерно глючит. Во второй версии даже больше, чем в 1-й. А видимых изменений я что-то не вижу, кроме того, что удобную кнопку закрытия табов размножили на каждый таб и при определенном их количестве, она пропадает со всех табов, кроме текущего.

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

>А видимых изменений я что-то не вижу, кроме того, что удобную кнопку закрытия табов размножили на каждый таб и при определенном их количестве, она пропадает со всех табов, кроме текущего.

^W?

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