Нет, в Linux они не всегда уникальны.
Linux использует devpts
виртуальную файловую систему для предоставления псевдотерминалов (ptys ), и эту виртуальную файловую систему можно монтировать более одного раза и в разных местах, что удобно при настройке chroot или контейнеров пространства имен. Хотя кортеж major:minor
уникален для экземпляра файловой системы devpts
, он не уникален для работающей системы :
# mount -t devpts devpts /dev/pts
# script -q /dev/null
# stat -c '%n %t:%T %d:%i' `tty`
/dev/pts/0 88:0 34:3
# mount -t devpts devpts /dev/pts
# script -q /dev/null
# stat -c '%n %t:%T %d:%i' `tty`
/dev/pts/0 88:0 35:3
В приведенном выше примере команда script(1)
создает псевдо-терминал -и запускает в нем оболочку. Чертовски очевидно, что псевдотерминал -, созданный первым процессом script
, отличается от терминала, созданного вторым, но у них одинаковые имена и старшие и младшие номера.
Чтобы однозначно идентифицировать псевдотерминал, вам нужно использовать его кортеж device:inode
или объединить номер устройства (файловой системы devpts )с его major:minor
. Проблема в том, что поле "tty" в/proc/PID/stat
(7-м, см. справочную страницу proc(5)
; вот где такие инструменты, как lsof
или ps
получают информацию из )содержит только st_rdev
tty (упакованныйmajor:minor
); если это ведомое устройство pty, нет указания на файловую систему devpts
, которая его предоставляет. Те же проблемы влияют на номер устройства, который можно получить с помощью TIOCGDEV
ioctl.
Кажется, не существует надежного способа идентифицировать управляющий терминал процесса в Linux.
Формат даты/времени «ГГГГ -ММ -ДД ЧЧ :ММ :СС» настраивается в основном файле конфигурации с параметром date_format
, установленным наiso8601
:
This option allows you to specify what kind of date/time format Nagios should use in the web interface and date/time macros. Possible options (along with example output) include:
Option Output Format Sample Output us MM/DD/YYYY HH:MM:SS 06/30/2002 03:15:00 euro DD/MM/YYYY HH:MM:SS 30/06/2002 03:15:00 iso8601 YYYY-MM-DD HH:MM:SS 2002-06-30 03:15:00 strict-iso8601 YYYY-MM-DDTHH:MM:SS 2002-06-30T03:15:00
Вам потребуется перезапустить Nagios, чтобы изменения вступили в силу.
Как обычно, это было легко, если знать, где искать.
В файле конфигурации :/usr/local/nagios/etc/nagios.cfg
Самостоятельно задокументировано в файле конфигурации:
# DATE FORMAT OPTION
# This option determines how short dates are displayed. Valid options
# include:
# us (MM-DD-YYYY HH:MM:SS)
# euro (DD-MM-YYYY HH:MM:SS)
# iso8601 (YYYY-MM-DD HH:MM:SS)
# strict-iso8601 (YYYY-MM-DDTHH:MM:SS)
#
date_format=us
Джефф Шаллер :Спасибо за ответ.