Page 1 of 4

[Решено] Не работает у 2 пользователей одновременно

PostPosted: Mon May 11, 2009 11:08 pm
by ache
Линукс. Залогинены 2 пользователя. Если один запустил Goldendict от своего имени, другой запустить программу уже не сможет. Баг? Фича?

Re: Не работает у 2 пользователей одновременно

PostPosted: Mon May 11, 2009 11:13 pm
by ikm
Фича. Это к Ars, у него был код проверки, не запущено ли.

Re: Не работает у 2 пользователей одновременно

PostPosted: Mon May 11, 2009 11:45 pm
by Ars
В линуксе список процессов мапится на /proc, который глобален для всех юзеров.
Плохой баг. Посмотрю, как обойти можно.

Re: Не работает у 2 пользователей одновременно

PostPosted: Mon May 11, 2009 11:52 pm
by ikm
Вообще принято обычно делать файл типа ~/.goldendict/pid и проверять при запуске, жив ли pid, который в нём записан. Если файл есть и pid жив, значит, процесс скорее всего уже запущен и работает. Если pid-файла нет, программа очевидно еще не запущена. Если pid-файл есть, но pid не жив, значит, в прошлый раз программа неожиданно была прибита, и можно запускаться всё равно.

Re: Не работает у 2 пользователей одновременно

PostPosted: Tue May 12, 2009 12:02 am
by Ars
ага, и в винде такое тоже должно сработать... хороший вариант, попробую

Re: Не работает у 2 пользователей одновременно

PostPosted: Tue May 12, 2009 12:05 am
by ikm
В винде обычно какой-нибудь named-объект создают. Они не выживают после перезагрузки :)

Re: Не работает у 2 пользователей одновременно

PostPosted: Tue May 12, 2009 11:38 am
by ache
Ars wrote:В линуксе список процессов мапится на /proc, который глобален для всех юзеров.
Плохой баг. Посмотрю, как обойти можно.

Можно просто посмотреть владельца соответствующей процессу директории в /proc. Например, функцией stat.
Или можно проверить, запущен ли процесс от имени текущего пользователя, функцией kill(процесс, 0), но это не сработает, если пользователь с правами root.

Re: Не работает у 2 пользователей одновременно

PostPosted: Wed May 13, 2009 9:20 am
by Ars
Должно работать уже, просьба проверить и подтвердить.

Re: Не работает у 2 пользователей одновременно

PostPosted: Thu May 14, 2009 10:14 pm
by ache
Ars wrote:Должно работать уже, просьба проверить и подтвердить.

Версия из SVN, revision 301, не работает. При запуске от 2-го пользователя в консоль ничего не пишет. По отдельности у обоих пользователей работает.

Linux, AMD64. Какая нужна информация о системе?

Re: Не работает у 2 пользователей одновременно

PostPosted: Fri May 15, 2009 7:57 am
by Ars
ache wrote:При запуске от 2-го пользователя в консоль ничего не пишет. По отдельности у обоих пользователей работает.


В консоль ничего и не должно писаться.

А можно подробнее? Что именно не работает? Когда логинится 2 человека, у второго программа не запускается?