Ich rannte apt upgrade
, als ich das Terminal brauchte, und a ctrlz. Wenn ich versuchte, es neu zu starten ( fg
), wurde es nicht neu gestartet, da es nicht mehr in der Jobliste ( jobs
) enthalten war. (Ich habe nicht verleugnet). Ich habe dann eine ps
Prozess-ID erhalten. Es zeigte, dass der Prozess gestoppt wurde (wie erwartet), also tat ich es sudo kill -s SIGCONT pid
, um ihn neu zu starten, aber es passierte nichts. ps
zeigte, dass der Prozess noch gestoppt wurde. Es gab keine Fehlermeldung.
Was ich getan habe.
sudo apt upgrade
«wait a bit»
«ctrl-z»
«some other command» #can't remember, but nothing special.
fg #This command failed, no such job
jobs #No output
Was ich versucht habe, es zu beheben.
- sende sigcont an
apt
sende sigcont an
sudo
Was ist passiert, damit die Shell den Prozess ablehnt?
- (was noch wichtiger ist) Wie starte ich es neu?
Ausgabe von ps -l -p $(pgrep apt)
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 T 0 22884 22883 0 80 0 - 21617 - pts/1 00:00:01 apt
Ausgabe von pstree -s -p $(pgrep apt)
systemd(1)───kdeinit5(1038)───ksmserver(1062)───yakuake(1153)───bash(1225)───sudo(22883)───apt(22884)
Ausgabe von pgrep bash | xargs -n1 ps -l -p
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 1225 1153 0 80 0 - 8770 core_s pts/1 00:00:00 bash
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 3852 3849 0 80 0 - 8404 - pts/7 00:00:00 bash
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 4449 4445 0 80 0 - 8392 core_s pts/3 00:00:01 bash
⋮
Ideen: Hat es den Kontakt zu stdout / stdin verloren? Braucht es das?
System Debian, Bash
#↳ bash --version
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)
#↳ uname -a
Linux delorenzi 3.16.0-5-amd64 #1 SMP Debian 3.16.51-3+deb8u1 (2018-01-08) x86_64 GNU/Linux
#↳ sudo --version
Sudo version 1.8.10p3
Sudoers policy plugin version 1.8.10p3
Sudoers file grammar version 43
Sudoers I/O plugin version 1.8.10p3
quelle
fg
Befehl in dieser Shell-Sitzung verwenden?ps -l -p $(pgrep apt-get)
?apt-get
Prozesses ist und welche Shell ausgeführt wirdfg
.ps -l -p $(pgrep apt)
zur Frage hinzufügen .Antworten:
Der übliche Schuldige wäre eine ehrliche Verwirrung. Der naheliegendste Ort, an dem Sie überprüfen müssen, ist, dass Sie
jobs
von einer Shell aus arbeiten, deren PID mit der erwarteten übereinstimmt (1225). In den Kommentaren erwähnen Sie, dass Sie das Terminal haben, aber ich vermute, dass der "andere Befehl" eine andere Shell gestartet hat? Haben Sie$$
die Shell bestätigt, von der aus Sie ausgeführt werdenjobs
?quelle