Laufenden Prozess in den Hintergrund schieben
Laufenden Prozess in den Hintergrund schieben
Hallo,
mit der Tastenkombination STRG + z kann man ja einen laufenden Prozess anhalten und in den Hintergrund schieben. Gibts auch die Möglichkeit ihn einfach in den Hintergrund zu schieben, ohne ihn anzuhalten (ich spreche von einem bereits laufenden Prozess - die Mögichkeiten mit & sowie fg und bg fallen also denke ich mal weg).
mit der Tastenkombination STRG + z kann man ja einen laufenden Prozess anhalten und in den Hintergrund schieben. Gibts auch die Möglichkeit ihn einfach in den Hintergrund zu schieben, ohne ihn anzuhalten (ich spreche von einem bereits laufenden Prozess - die Mögichkeiten mit & sowie fg und bg fallen also denke ich mal weg).
WHEEZY amd64: AMD X2 BE-2400, Nvidia Geforce GT-9800 green
JESSIE amd64: Levono x201 Laptop
JESSIE amd64: Levono x201 Laptop
Re: Laufenden Prozess in den Hintergrund schieben
Hmmm, kann es sein, das ein Prozess durch STRG + z garnicht in den Hintergrund gelegt sondern nur angehalten wird, und eine Jobnummer bekommt?
WHEEZY amd64: AMD X2 BE-2400, Nvidia Geforce GT-9800 green
JESSIE amd64: Levono x201 Laptop
JESSIE amd64: Levono x201 Laptop
Re: Laufenden Prozess in den Hintergrund schieben
Ja, und mit bg lässt er sich dann in den Hintergrund schieben.
cu,
niemand
cu,
niemand
Re: Laufenden Prozess in den Hintergrund schieben
Wenn dir vorher klar ist dass derr Prozess im Hintergrund landen soll schau dir screen oder tmux an. nohup kann auch interessant sein.
Re: Laufenden Prozess in den Hintergrund schieben
oder einfach ein & hinter den Befehl schreiben.
"Wer sich nicht bewegt, spürt seine Fesseln nicht." - Rosa Luxemburg
Re: Laufenden Prozess in den Hintergrund schieben
charno hat geschrieben:oder einfach ein & hinter den Befehl schreiben.
spaceship hat geschrieben:(ich spreche von einem bereits laufenden Prozess - die Mögichkeiten mit & sowie fg und bg fallen also denke ich mal weg)
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Laufenden Prozess in den Hintergrund schieben
was je nach shell und deren config auch boese beim beenden shell enden kanncharno hat geschrieben:oder einfach ein & hinter den Befehl schreiben.
Re: Laufenden Prozess in den Hintergrund schieben
Naja, nicht böser als Ctrl+z und bg, oder? die Prozesse werden in beiden Fällen als Jobs von der Shell behandelt und mit dieser beendet, soweit ich das verstehe.
"Wer sich nicht bewegt, spürt seine Fesseln nicht." - Rosa Luxemburg
Re: Laufenden Prozess in den Hintergrund schieben
Terminal-Multiplexer für diese doch recht spartanische Aufgabenstellung einzusetzen finde ich etwas "too much".
Also nohup kommt noch am ehesten in Frage, wobei man auch hier schon im Vorfeld wissen muss, welchen Job man vom Terminal abkoppeln will. Zudem kann nohup standardmäßig nur von root voll eingesetzt werden. Dazu eine Zwischenfrage: Hat jemand eine Idee, wie man das elegant ändern könnte, ohne gleich den chmod 777 drauf anzusetzen.
Was noch interessant klingt ist das bash builtin
was mit der Option -h so ziemlich genau das macht, was ich will - nur leider im Standard auch nur vom root unbeschränkt eingesetzt werden kann.
Quelle: http://blog.tromm.net/2010/05/21/unix-p ... losgelost/
Also nohup kommt noch am ehesten in Frage, wobei man auch hier schon im Vorfeld wissen muss, welchen Job man vom Terminal abkoppeln will. Zudem kann nohup standardmäßig nur von root voll eingesetzt werden. Dazu eine Zwischenfrage: Hat jemand eine Idee, wie man das elegant ändern könnte, ohne gleich den chmod 777 drauf anzusetzen.
Was noch interessant klingt ist das bash builtin
Code: Alles auswählen
disown
Quelle: http://blog.tromm.net/2010/05/21/unix-p ... losgelost/
Zuletzt geändert von spaceship am 06.04.2013 09:47:32, insgesamt 1-mal geändert.
WHEEZY amd64: AMD X2 BE-2400, Nvidia Geforce GT-9800 green
JESSIE amd64: Levono x201 Laptop
JESSIE amd64: Levono x201 Laptop
- whisper
- Beiträge: 3385
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: Laufenden Prozess in den Hintergrund schieben
disown ist auch ein bash buitlin.
eh brauche das häufiger.
http://zockertown.de/s9y/index.php?/arc ... tzen!.html
eh brauche das häufiger.
http://zockertown.de/s9y/index.php?/arc ... tzen!.html
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
-
- Beiträge: 3799
- Registriert: 26.02.2009 14:35:56
Re: Laufenden Prozess in den Hintergrund schieben
Für die, die ein bisserl c können - da hab ich mir selbst was kleines für geschrieben - macht erst nen fork um sich von der shell zu lösen und dann einen system(...) und gut is. Läuft seint ca 3 Jahren ohne Probleme.
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <tzn.h>
#include <unistd.h>
#include <libpferd.h> // das hier raus und weiter unten bei nonewline schauen geht sicherlich auch anders
// aenderung am 01.03.2013
// automatisches ergaenzen &
int rc;
char cmdtab[20][256];
char cmd[1024];
int itab;
int pid;
int cmdlength;
int main(int argc, char *argv[]) {
#include <tzp.h>
if (argc > 20) {
rc = 1;
printf("Zu viele Argumente\n");
exit (rc);
}
if (argc < 2) {
rc = 1;
printf("Bitte Programm mit Parametern eingeben, dass als\n");
printf("Hintergrundprozess laufen soll\n");
exit(rc);
}
strcpy(cmd,"");
itab = 1;
while (itab < argc) {
strcat(cmd,argv[itab]);
nonewline(cmd); // hier haendig anpassen - nonewline ist aus libpferd
strcat(cmd," ");
itab = itab + 1;
}
printf(cmd);
cmdlength=strlen(cmd);
/* - 2, weil weiter oben noch */
/* ein space angehaengt wird */
cmdlength=cmdlength - 2;
if (cmd[cmdlength] == '&') {
printf("& schon vorhanden - nix zu tun");
}
else {
strcat(cmd," &");
printf("%s%s","Cmd changed:",cmd);
}
printf("\n");
pid = fork();
if (pid > 0) {
printf("\n");
return 0;
}
rc = system(cmd);
return rc;
}
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <tzn.h>
#include <unistd.h>
#include <libpferd.h> // das hier raus und weiter unten bei nonewline schauen geht sicherlich auch anders
// aenderung am 01.03.2013
// automatisches ergaenzen &
int rc;
char cmdtab[20][256];
char cmd[1024];
int itab;
int pid;
int cmdlength;
int main(int argc, char *argv[]) {
#include <tzp.h>
if (argc > 20) {
rc = 1;
printf("Zu viele Argumente\n");
exit (rc);
}
if (argc < 2) {
rc = 1;
printf("Bitte Programm mit Parametern eingeben, dass als\n");
printf("Hintergrundprozess laufen soll\n");
exit(rc);
}
strcpy(cmd,"");
itab = 1;
while (itab < argc) {
strcat(cmd,argv[itab]);
nonewline(cmd); // hier haendig anpassen - nonewline ist aus libpferd
strcat(cmd," ");
itab = itab + 1;
}
printf(cmd);
cmdlength=strlen(cmd);
/* - 2, weil weiter oben noch */
/* ein space angehaengt wird */
cmdlength=cmdlength - 2;
if (cmd[cmdlength] == '&') {
printf("& schon vorhanden - nix zu tun");
}
else {
strcat(cmd," &");
printf("%s%s","Cmd changed:",cmd);
}
printf("\n");
pid = fork();
if (pid > 0) {
printf("\n");
return 0;
}
rc = system(cmd);
return rc;
}