Категорії
FreeBSD Misc, staff, other Solaris

[Dtrace] curpsinfo->pr_psargs

Для чого взагалі ця конструкція? А для того, щоб визначити аргументи з якими запускається програма. Це буває дуже корисно. Так от, є деякі нюанси та відмінності в роботі на різних ОС.

Ось простий приклад використання:

#!/usr/sbin/dtrace -s
#pragma D option quiet
proc:::exec-success
{
     printf("%s", curpsinfo->pr_psargs);
}

Solaris

Тут діє жорстке обмеження у 80 символів, включаючи і шлях до самої програми, яке описане у файлі sys/procfs.h

#define PRARGSZ         80      /* number of chars of arguments */
typedef struct psinfo {
...
char    pr_psargs[PRARGSZ];     / initial characters of arg list */
...
}

FreeBSD

А тут можна міняти це значення через sysctl параметр kern.ps_arg_cache_limit (за замовчуванням 256)

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP