2015-06-11 14 views
6

Sto scrivendo del codice per sostituire i socket TCP con le code dei messaggi POSIX. A volte il programma si blocca (ancora in fase di sviluppo) e le code che sono state create non vengono cancellate (non eseguite: mq_close() + mq_unlink()). Questo causa problemi quando eseguo di nuovo il codice.Code messaggi Posix e riga di comando?

C'è un modo per eliminare/rimuovere queste code utilizzando la riga di comando? Ho provato a utilizzare: ipcs -q. Questo non è riuscito a elencare le code.

Ho provato: lsof | grep queue-name. Si sono presentati qui.

Idealmente, mi piacerebbe usare: ipcrm.

risposta

10

POSIX Gli oggetti IPC sono implementati come file in file system virtuali. Questi file possono essere elencati e rimossi con ls e rm. Per fare ciò con le code dei messaggi POSIX, dobbiamo montare il file system della coda dei messaggi usando i seguenti comandi:

$ su 
Password: 
# mkdir /dev/mqueue 
# mount -t mqueue none /dev/mqueue 
# exit 
+2

È abbastanza accettabile assegnarsi la risposta. Ciò aiuterà gli altri che guardano a questa domanda in futuro. – Mawg

+1

Come menzionato da @Mawg, non esitare a [accettare] (https://stackoverflow.com/help/accepted-answer) la tua risposta. Questa risposta funziona bene anche per me. (Vorrei rimuovere 'su' e usare' sudo ').) – Melebius

Problemi correlati