Обновление в последний раз измененного времени файла

Что-нибудь с PPID 1 является, по большей части, вероятно, демон. Но есть ситуации, которые могут возникнуть, где процессы могут стать детьми 1, которые не являются технически демонами. Таким образом, методы, которые я обсуждаю ниже, должны продемонстрировать, как вы пойдете в определение, если PID принадлежит 1, не обязательно, что его реальный демон.

Например

$ ps -xj
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
 8420  1211  1211  8420 pts/4     1211 S+    1000   0:01 ssh dufresne
    1  2276  2275  2275 ?           -1 Sl    1000   0:48 /usr/bin/gnome-keyring-daemon --daemonize --login
 2196  2278  2278  2278 ?           -1 Ssl   1000   0:39 gnome-session
    1  2288  2278  2278 ?           -1 S     1000   0:00 dbus-launch --sh-syntax --exit-with-session
    1  2289  2289  2289 ?           -1 Ssl   1000   6:00 /bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
    1  2358  2289  2289 ?           -1 Sl    1000   0:01 /usr/libexec/gvfsd

Выдержка из Википедии может пролить свет на вещи, но оно тоже оставляет вещи немного расплывчатыми на том, как на самом деле определить, является ли процесс демоном или нет.

Выдержка из Википедии

в среде Unix, родительский процесс демона часто является часто, но Не всегда процесс инициализации. Демон обычно либо создается Процесс раздвинуть детский процесс, а затем немедленно выходить, таким образом вызывая init, чтобы принять дочерний процесс или процессом init непосредственно запускающий демон. Кроме того, демон запущен Вылет и выход обычно должен выполнять другие операции, такие как диссоциировать процесс от любого контролирующего терминала (TTY). Такой Процедуры часто реализуются в различных удобных процедурах, таких как демон (3) в Unix.

Примечание. О системах, которые используют SystemD (Red Hat Distries, такие как Fedora), обычно нет INIT , а вместо этого:

$ ps -j -1
  PID  PGID   SID TTY      STAT   TIME COMMAND
    1     1     1 ?        Ss     0:42 /usr/lib/systemd/systemd --switched-root --system --deserialize 20

это процесс с PID 1.

​​На системе Debian / Ubuntu у них будет процесс, по-прежнему по имени init :

$ ps -j -1
  PID  PGID   SID TTY      STAT   TIME COMMAND
    1     1     1 ?        Ss     0:02 /sbin/init

Так что же является демоном?

и вот причина, по которой можно было сложно определить, является ли что-то демон или Не тогда, когда его PPID 1:

процесс может стать ребенком процесса init, ( Примечание: , что INIT процесс PID 1), когда их родитель убит или Окончали их, эти процессы не обязательно являются демонами, но все равно будут отображаться как имеющие свой PPID, равный 1 .

Итак, чтобы сделать решимость, является ли что-то демоном или, скорее всего, потребует аккумулятора тестов, а не просто ищет, чтобы увидеть, является ли это PPID 1.

Так где же это оставляет нас?

, чтобы определить Если что-то является демоном, который, вероятно, придется приберем к различным тестам, таким как:

  • PPID 1?
  • Прилагается TTY?
  • Это услуга? Sudo Service ... ?
  • управляется SystemD, Upstart или Sysv?
  • это слушает на порту?
  • Это пишет в файл журнала? Syslog?

Так что мы должны прибегать к «утки, набрав», если он доворачивает, и плавает, вероятно, утка, но даже вышеуказанные характеристики могут обмануть вас.

Ссылки

-121--52683-

, который, безусловно, неверно.
Судо возникли около 1980 года ¹
Debian было впервые объявлено в 1993 году .

¹ Я использовал Sudo SUDO Сам еще 80-х годов, прежде чем Linux был впервые выпущен, не говоря уже о Debian.

0
13.04.2017, 15:36
1 ответ
[117193] Самое простое: можно использовать :
  • , чтобы дать ТЭФИЛЬ столько же времени, сколько и Справочный файл. so:
  • Но если вы предпочитаете иметь более гибкий способ:

    Иметь "надежный" способ получать время файла в "переносном" формате, не зависящем от того, изменился ли файл последний раз в течение 6 месяцев и т.д:

    так что вы могли бы сделать это, чтобы получить время, подходящее для прикосновения:

    4
    28.01.2020, 02:20

    Теги

    Похожие вопросы