Так как программа просто приостановлена и не надежно сказана, я вместо этого настроил бы именованный канал и породил бы сценарий сигнальной метки.
Это просто циклично выполнило бы каждые 5 или 15 минут, пишущий штамп текущего времени в именованный канал и затем спало бы.
Вы могли затем читать из того канала и сделать математику между чтениями - если время переходит больше чем один или два ping, то Вы спали.
В зависимости от того, как точный Вам требуются времена, Вы могли затем выследить файл /private/var/log/system.log (и потенциально/private/var/log/system.0.log.gz) для последнего сна / Стандартное время острова Уэйк, зарегистрированное ядром.
Это будет большим количеством работы, чем доверие сигналам. Вам можно было также выполнить помощника самостоятельно и отправить любой сигнал, который Вы хотите к своему сценарию.
Шесть из один, полдюжины из другого.
Поскольку можно найти от man who
-a, --all
same as -b -d --login -p -r -t -T -u
Поэтому давайте посмотрим в деталях:
-b, --boot
time of last system boot
это - строка system boot Jun 17 03:47
-d, --dead
print dead processes
это - строки с exit=0
в конце
-l, --login
print system login processes
это - вход в систему ttys (строки с LOGIN
в начале)
-p, --process
print active processes spawned by init
это
-r, --runlevel
print current runlevel
это run-level 3 Jun 17 03:47 last=S
следующий
-T, -w, --mesg
add user's message status as +, - or ?
-u, --users
list users logged in
эти два представляют в виде строки
bo + pts/1 Oct 23 12:24 . 19776 (10.10.10.93)
Надеюсь теперь, что более ясно, как проанализировать этот вывод.
info who
) который иногда идет более подробно, чем человек – George Vasiliou 19.12.2016, 01:11