Jeśli uruchamiam program w trybie bash, mogę go zawiesić, naciskając Ctrl+ Z. Jeśli chcę pozostawić uruchomiony program, mogę użyć bg
polecenia. Czy jest jakiś sposób na bezpośrednie umieszczenie programu w tle, bez konieczności pisania bg
?
Wyjaśnienie : Chcę umieścić program w tle, gdy jest już uruchomiony, bez zawieszania go.
Odpowiedzi:
Nie sądzę, że można przenieść działający program na tło (gdy proces jest nadal uruchomiony).
Istnieje jednak aplikacja o nazwie GNU-Screen , za pomocą której można uruchamiać dowolną liczbę aplikacji konsolowych - interaktywne powłoki poleceń, aplikacje oparte na klątwach, edytory tekstu itp. - w ramach jednego terminala.
Oto fajny samouczek na temat GNU-Screen.
Pamiętaj, że nie robi dokładnie tego, o co prosiłeś, ale i tak służy temu celowi.
Przykład:
Oto implementacja tego, o co prosiłeś za pomocą GNU-Screen.
screen
Otrzymasz szczegółowe informacje o oprogramowaniu. Naciśnij powrót.
vlc
. Rozpocznie się proces w tym oknie.źródło
Według mojej najlepszej wiedzy, możesz go uruchomić, a następnie dołączyć & po nim w następujący sposób:
myprogram &
Jednak mogę się tutaj bardzo mylić.
[EDYCJA]: Przyjrzyj się temu bliżej, jeśli uruchomisz powyższe, aplikacja zostanie zamknięta po zamknięciu terminalu. Jeśli chcesz, aby aplikacja działała w tle, to o ile wiem, aplikacja musi być napisana w sposób, który obsługuje zachowanie demona.
[EDYCJA 2]:
nohup command &
wydaje się być bliżej tego, co chcesz osiągnąć. Nohup pozwoli na uruchomienie aplikacji i zarówno zignoruje jej dane wejściowe, jak i przekieruje dane wyjściowe do pliku zwanegonohup.out
w bieżącym katalogu.źródło
To może nie być prawdziwa odpowiedź. Zastanawiam się, czym różni się Bash między Ubuntu z MSYS.
Korzystam z MSYS i po uruchomieniu
Application/Chrome &
natychmiast przechodzi do procesu w tle. Mogę użyć bashu MSYS, gdy następny monit zacznie migać.I czy są to pytania Przenieś działający program na tło o podobnych celach?
źródło