Экран активен, но нет сокетов в /var/run/screen

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 секунды в качестве времени загрузки. По крайней мере, одну секунду. Иначе вы можете иногда получать ненулевой ответ, если их время загрузки отличается даже на малую долю секунды, что может привести к трудноотлаживаемым ошибкам.

4
13.07.2018, 12:56
1 ответ

Похоже, ваши файлы сокетов 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 .

Ссылки

2
27.01.2020, 20:59

Теги

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