У меня есть старая программа C++ STL 11, которая использует семафор и общую память. Он работает уже много лет как часы (Debian 7). Он выполняется под root.
Теперь я перешел на новый сервер (Debian 9), и он работает под пользователем без полномочий root.
Программа запускается в фоновом режиме с помощью nohup и &.
Как только я выхожу из системы в новой среде, семафор исчезает (больше не отображается в ipcs). Но общая память по-прежнему доступна и процесс также выполняется, чего я не понимаю. Почему не все IPC-элементы обрабатываются одинаково?
Любые идеи для этого??
EDIT Если я запускаю его с помощью sudo, семафор принадлежит пользователю root и существует, даже если я выхожу из системы.