Для Nvidia GPU там инструмент nvidia-smi
это может показать использование памяти, использование GPU и температуру GPU. Также существует список, вычисляют процессы и еще немного опций, но моя видеокарта (GeForce 9600 GT) не полностью поддерживается.
Sun May 13 20:02:49 2012
+------------------------------------------------------+
| NVIDIA-SMI 3.295.40 Driver Version: 295.40 |
|-------------------------------+----------------------+----------------------+
| Nb. Name | Bus Id Disp. | Volatile ECC SB / DB |
| Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. |
|===============================+======================+======================|
| 0. GeForce 9600 GT | 0000:01:00.0 N/A | N/A N/A |
| 0% 51 C N/A N/A / N/A | 90% 459MB / 511MB | N/A Default |
|-------------------------------+----------------------+----------------------|
| Compute processes: GPU Memory |
| GPU PID Process name Usage |
|=============================================================================|
| 0. Not Supported |
+-----------------------------------------------------------------------------+
Я думаю Ваш лучший выбор, должен записать программу, которая называет ftok, для получения ключа, чего-то как:
#include <stdio.h>
#include <stdlib.h>
#include <sys/ipc.h>
int main(int argc, char **argv)
{
unsigned long long key;
if (argc != 3) {
printf("Usage %s: [path] [id]\n" ,argv[0]);
return 1;
}
key = ftok(argv[1], atoi(argv[2]));
printf("%llx\n", key);
return 0;
}
После того как у Вас есть этот ключ, можно использовать его для удаления очереди сообщений: ipcrm -Q <key>
. С другой стороны, можно изменить программу выше для вызова msgctl(3)
удалить очередь сообщений.