Ich habe lang laufende Prozesse, die ich einfach starte. Ich erstelle SSH und melde mich bei der SSH-Sitzung an, erstelle mehrere Bildschirme und führe alle Programme aus und trenne sie mit (Strg + A + D). Aber wenn ich fortfahre (Bildschirm + R) und versuche, meine Ausgaben anzuzeigen, ist der Server langsam geworden. Alle Prozesse funktionieren, aber keiner von ihnen ist bisher fertig. Und ich habe mich schließlich entschieden, einige der Bildschirme anzuhalten und einige von ihnen auszuführen, um die laufenden Programme so schnell wie möglich fertigzustellen.
Ich brauche Hilfe, ob es möglich ist, einige der laufenden Prozesse anzuhalten.
Antwort1
Sie können den Prozessen ein Signal senden, um sie zu stoppen (anzuhalten):
kill -SIGSTOP <PID>
Um den Vorgang zu einem späteren Zeitpunkt fortzusetzen, gehen Sie wie folgt vor:
kill -SIGCONT <PID>
von der Signal-Manpage (man 7 signal):
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
Dies funktioniert natürlich nur, wenn die von Ihnen ausgeführten Programme diese Signale korrekt verarbeiten. Sie können auch STRG-Z auf der Shell drücken, auf der Sie die Prozesse gestartet haben. Dadurch werden sie gestoppt. Mit „bg“ können Sie sie erneut im Hintergrund starten oder mit „fg“ erneut im Vordergrund.
Hoffentlich hilft das.