EDIT: Обратите внимание, что я говорю только о PID 1, потому что я не умею писать на английском и подумал, что вы хотите проверить ваш основной процесс init. Измените его на интересующий вас. Я уверен, что systemd как-нибудь выплюнет PID для вас. Или, если нет, ps ax |grep [commandname]
сделает это. Вероятно, вам также потребуется настроить разницу во времени между временем работы и временем выполнения процесса, просто добавьте +3
или что-то еще в строку bc./EDIT
Я не использую systemd, поэтому примите это с долей соли. Агностно-системный способ заключается в сравнении времени запуска интересующего вас процесса и времени работы системы. Вы можете получить их с помощью ps -o etimes [PID]
. Традиционно PID 1 зарезервирован для процесса init, но я не знаю, придерживается ли этого systemd. Проверьте с помощью ps 1
, действительно ли это тот процесс, который вас интересует, и настройте, если нет. Вы можете получить время работы системы в секундах (среди прочего) с помощью cat /proc/uptime |cut -d "." -f 1
. Разделителем для cut
является точка, поскольку ps
отбрасывает и десятичные знаки.
сравните их с bc или вашим любимым способом. Примером командной строки может быть:
echo $(cut -d "." -f 1 /proc/uptime)"-"$(ps -o etimes [PID] |tail -n 1 |tr -d ' \t')|bc
Ожидаемый результат - 0, если процесс запущен во время загрузки. Вы можете проверить, соответствует ли он вашим выводам. Для сценариев командной оболочки я бы прогнал их через тесты if/then и принял бы +-3 секунды в качестве времени загрузки. По крайней мере, одну секунду. Иначе вы можете иногда получать ненулевой ответ, если их время загрузки отличается даже на малую долю секунды, что может привести к трудноотлаживаемым ошибкам.
Похоже, ваши файлы сокетов screen
были удалены из-под screen
. Вы можете активировать screen
, чтобы воссоздать их таким образом, отправив им сигнал SIGCHLD
с помощью команды kill
:
$ kill -CHLD 30860
$ ls /var/run/screen/S-username/
30860.pts-4.localhost
Где PID, 30860, является PID screen
. Дополнительные методы выделены в часто задаваемых вопросах под названием:в архиве Gentoo Wiki FAQ .