There are stopped jobs
Nachricht ist weit, weit weg , um ein Fehler zu sein. Es handelt sich lediglich um eine Benachrichtigung, emacs
die Sie darüber informiert , dass Sie versuchen, die Shell zu verlassen, jedoch einen oder mehrere Jobs / Programme angehalten haben (in Ihrem Fall, die Sie &
am Ende Ihres Befehls im Hintergrund ausgeführt haben). Das System lässt Sie nicht die Shell verlassen und die Jobs beenden, es sei denn, Sie möchten. Als Antwort auf diese Nachricht können Sie folgende Aktionen ausführen:
- Verwenden Sie den
jobs
Befehl, um anzugeben, welche Jobs Sie angehalten haben
- Mit dem
fg
Befehl können Sie die Jobs im Vordergrund hinzufügen
- Wenn es Ihnen egal ist, ob die Jobs beendet werden, können Sie sie einfach
exit
erneut eingeben. Wenn Sie exit
ein zweites Mal mit oder ohne jobs
Befehl tippen, werden alle angehaltenen Jobs beendet.
Um die zweite Frage zu beantworten, werde ich Ihnen sagen, dass sich Ubuntu oder Emacs nicht so verhalten. Dies ist ein normales Verhalten, wenn Sie eine Anwendung im Hintergrund ausführen. In diesem Fall sudo
wird nach dem Passwort gefragt, aber im Hintergrund, sodass Sie diese Tatsache nicht sehen können. Um dies zu sehen, sollten Sie den Job mit dem folgenden fg
Befehl wieder in den Vordergrund bringen :
radu@Radu: ~ $ sudo emacs tet.c &
[1] 7732
radu@Radu: ~ $ # now sudo emacs run in background so you can't see nothing about what's happening
radu@Radu: ~ $ fg
[sudo] password for radu:
Danach können Sie Ctrl+ eingeben Z, um den Job wieder in den Hintergrund zu stellen, wenn Sie möchten. Dann können Sie den Befehl 'fg' erneut ausführen, um den Job wieder in den Vordergrund zu bringen und so weiter.
quit
:) (siehe superuser.com/questions/486496/how-do-i-exit-telnet )Sie haben die Meldung erhalten, weil das System Sie vor aktiven Jobs warnt, die mit Ihrer aktuellen Shell verknüpft sind.
Sie können führen Sie diese zum Laufen / gestoppt Jobs ausgeführt wird :
jobs
,Dann können Sie eine der folgenden Aktionen ausführen:
fg
(Gegenteil vonbg
für Hintergrund),disown
den Befehl aus, um diese Jobs aus Ihrer aktuellen Shell zu entfernen, ohne sie zu beenden.exit
/logout
zweimal,kill $(jobs -p)
(Add-9
for Force)Wenn Sie sie ablehnen und dennoch alle gestoppten Prozesse beenden möchten, versuchen Sie Folgendes:
kill $(ps wuax | awk 'NR>1 && $8 ~ "T" {print $2}')
Um die Frage zu beantworten
sudo
, werden Sie nicht nach dem Kennwort gefragt, da ein aktives Terminal erforderlich ist, um das Kennwort von der Standardeingabe zu erhalten. Wenn Sie es im Hintergrund ausführen, wartet die Shell nicht, bis der Befehl beendet ist Sie haben also keine Möglichkeit, mit dem Befehl zu interagieren.In diesem Fall haben Sie 3 Möglichkeiten:
&
),Lesen Sie das Passwort von der Standardeingabe anstelle des Endgeräts durch
sudo -S
zKonfigurieren Sie sudo so, dass Sie nicht nach dem Kennwort gefragt werden:
visudo
Befehl und Bearbeitungsdateisudoers
. Siehe: Für Benutzer aktivierenNOPASSWD
quelle
Wenn Sie auf einen gestoppten Auftragsfehler stoßen :
jobs
-> Sie sehen die Jobs mit dem Status "Gestoppt"exit
-> du kannst das Terminal verlassenquelle