Wie kann ein von Upstart gestarteter Prozess in den Vordergrund treten?

479
tarabyte

Ist es möglich, einen Prozess in den Vordergrund zu rücken, der durch Startup gestartet wird?

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 Antworten auf die Frage

6
Kamil Maciorowski

fgbenötigt eine Auftragsnummer, keine PID. Es gibt keine Jobnummer, die Sie verwenden können, da jeder Prozess, der von gestartet upstartwird, kein Kind Ihrer Shell ist. Es erscheint nicht in der jobsAusgabe.

Versuchen Siereptyr zB:

reptyr 2208 

Aus seiner Manpage :

reptyr ist ein Dienstprogramm, um ein vorhandenes laufendes Programm zu nehmen und an ein neues Terminal anzuschließen.

Verpassen Sie nicht diese Notiz:

reptyrhängt vom ptrace(2)Systemaufruf ab, der mit dem Remote-Programm verbunden werden soll. Bei Ubuntu Maverick und höher ist diese Funktion aus Sicherheitsgründen standardmäßig deaktiviert. Sie können es vorübergehend aktivieren, indem Sie tun

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

als root oder durch Bearbeiten der Datei /etc/sysctl.d/10-ptrace.conf, die auch weitere Informationen zu dieser Einstellung enthält.

Beachten Sie auch, dass reptyrein Prozess nur an ein anderes Terminal angehängt wird. Dies bedeutet nicht, dass der Prozess ein Kind Ihrer aktuellen Shell wird.

1
Genaro Morales

Der fgBefehl benötigt die Job-ID und nicht die Prozess-ID. Sie müssen den jobsBefehl ausführen und die Job-ID des Prozesses abrufen