Как сделать так, чтобы процесс знал о других процессах той же программы

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

Моя первая мысль заключалась в том, чтобы написать файл, содержащий PID какого-либо процесса, и искать этот файл каждый раз, когда программа выполняется, но где находится "правильное" место и имя для этого файла? Есть ли лучший или более «правильный» способ?

Затем я должен сообщить, что пользователь пытался запустить его, но поскольку есть другой экземпляр, он передаст задание и завершит работу. Я думал просто послать сигнал, такой как SIGUSR1, но это не позволило бы мне послать больше информации, вроде дисплея X11, откуда пользователь выполнил второй процесс. Как отправить эту информацию?

Программа связана с Gtk, поэтому решение, использующее glib, подходит.

10
задан Fred Foo 17 January 2011 в 17:00
поделиться