1

Можно ли определить, является ли данный запущенный процесс интерактивным или просто похожим на демон (т. Е. Реальным демоном, или tail -f , или подобным), используя сценарии или любой другой язык?

Если так, то как?

Возможно ли это на более чем одной платформе (чаще всего я использую bash, но решения в других оболочках - даже в PowerShell - тоже приветствуются)?

2 ответа2

2

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

Вы можете проверить библиотеки, к которым подключается приложение, и, если они управляют экраном (например, ncurses), возможно, они интерактивные. Хотя они могут работать «неинтерактивно (по вашему определению)» в определенных ситуациях запуска.

Я думаю, что лучшее, что вы можете сделать, это использовать strace, который покажет вам системные вызовы, которые использует приложение. Если он читает с fd, который привязан к tty, то он интерактивный.

0

Если я правильно понимаю ваш вопрос, с ним должен быть связан интерактивный процесс.

Следующее в системе Linux должно дать вам все интерактивные процессы:

ps -e | grep pts

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .