Jak wywołać program i wyjść z powłoki (wywołującego), gdy program jest aktywny?

2

Chcę uruchomić program z GUI, wpisując konsole: foo args … i wyjdź z powłoki (to jest wywołujący), gdy program ( foo ) jest aktywny.

Jak to zrobić? Czy istnieje wbudowane polecenie / program Linux / Unix, aby to zrobić? Naprawdę nie jestem człowiekiem muszlowym. Wiem, że jest to możliwe, pisząc mały program w C lub C ++ (dowolny inny język programowania z małym interfejsem I / O na POSIX) w języku programowania z fork() i jeden z exec*() rodzina funkcji. Może to zająć trochę czasu; Zrobię to tylko wtedy, gdy nie ma natywnego rozwiązania.

Przepraszam za mój zły język angielski; to nie jest mój język ojczysty. Ponadto, nie wiem na tagach, proszę edytować dla mnie, jeśli się mylę.

Jeśli to ma znaczenie, używam OpenSUSE 10.x.

Jack
źródło
A po co ci to? Czy znasz inny program, który zachowuje się w ten sposób?
choroba
Ponieważ chcę otworzyć niektóre programy, wpisując pojedyncze polecenie konsole; a kiedy programy te są otwarte, nie potrzebuję więcej otwartej konsoli, ale nie mogłem jej zamknąć, ponieważ konsola jest ojcem tego programu.
Jack

Odpowiedzi:

2

nohup foo args &

Oddzieli polecenie od powłoki. Następnie możesz wyjść. Jeśli foo produkuje dowolne wyjście, zostanie umieszczone w „nohup.out” w bieżącym katalogu.

Alan Shutko
źródło
Jak się nazywa &'? it does exactly what I want to. I don't need realy of program nohup`.
Jack
1
The & oznacza uruchomienie zadania w tle. Więcej informacji . Zauważ, że bez nohup, będzie nadal wychodzić, gdy powłoka zostanie zamknięta.
ssmy
@ssmy: Bardzo dziękuję. :)
Jack