Как предвидеть процесс, начатый выскочкой?

406
tarabyte

Можно ли предвидеть процесс, начатый выскочкой?

root@me:~# ps aux | grep my-app root 2208 0.2 0.0 1456 480 ? S 17:38 0:01 /opt/me/my-app root@me:~# fg 2208 -bash: fg: 2208: no such job root@me:~# fg $(pidof my-app) -bash: fg: 2208: no such job 
3

2 ответа на вопрос

6
Kamil Maciorowski

fgнужен номер работы, а не PID. Вы не можете использовать номер задания, потому что любой процесс, запущенный upstartне является дочерним элементом вашей оболочки. Это не появится в jobsвыводе.

Попробуйтеreptyr, например:

reptyr 2208 

С его справочной страницы :

reptyr утилита, которая берет существующую работающую программу и присоединяет ее к новому терминалу.

Не пропустите эту заметку:

reptyrзависит от ptrace(2)системного вызова для подключения к удаленной программе. В Ubuntu Maverick и выше эта возможность отключена по умолчанию из соображений безопасности. Вы можете включить его временно, выполнив

echo 0 > /proc/sys/kernel/yama/ptrace_scope 

от имени root или навсегда, отредактировав файл /etc/sysctl.d/10-ptrace.conf, который также содержит дополнительную информацию об этом параметре.

Также обратите внимание, что reptyrтолько процесс присоединяется к другому терминалу. Это не означает, что процесс становится дочерним элементом вашей текущей оболочки.

1
Genaro Morales

fgКоманда нуждается в job_id а не идентификатор процесса, необходимо выполнить jobsкоманду и получить job_id процесса

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