2015-06-11 13 views
6

Ich schreibe Code, um TCP-Sockets durch POSIX-Nachrichtenwarteschlangen zu ersetzen. Manchmal stürzt das Programm ab (noch in Entwicklung) und die erstellten Warteschlangen werden nicht gelöscht (nicht ausgeführt: mq_close() + mq_unlink()). Dies verursacht Probleme, wenn ich den Code erneut ausführen.Posix Nachrichtenwarteschlangen und die Befehlszeile?

Gibt es eine Möglichkeit zum Löschen/Entfernen dieser Warteschlangen über die Befehlszeile? Ich habe versucht mit: ipcs -q. Dies konnte keine Warteschlangen auflisten.

Ich versuchte: lsof | grep queue-name. Sie sind hier aufgetaucht.

Idealerweise würde ich gerne verwenden: ipcrm.

Antwort

10

POSIX IPC-Objekte werden als Dateien in virtuellen Dateisystemen implementiert. Diese Dateien können mit ls und rm aufgelistet und entfernt werden. Um dies mit POSIX-Nachrichtenwarteschlangen zu erreichen, müssen wir das Dateisystem der Nachrichtenwarteschlange mit den folgenden Befehlen einhängen:

+2

Es ist durchaus akzeptabel, sich selbst die Antwort zu geben. Das wird anderen helfen, die sich diese Frage in Zukunft ansehen. – Mawg

+1

Wie @Mawg erwähnt, zögern Sie nicht, Ihre Antwort zu akzeptieren (https://stackoverflow.com/help/accepted-answer). Diese Antwort funktioniert auch gut für mich. (Ich würde 'su' entfernen und' sudo 'trotzdem verwenden.) – Melebius