W moim przykładzie uruchamiam polecenie, które zajmuje bardzo dużo czasu (kilka godzin).
Naprawdę nie pamiętam, czy wpisałem make lub make -j4.
Oczywiście mógłbym to zatrzymać i nacisnąć klawisz w górę lub sprawdzić historię, aby to wiedzieć, ale to by zatrzymało proces i nie chcę, aby tak się stało (w przypadku, gdy już robi make -j4).
Czy jest jakiś sposób, aby dowiedzieć się, które polecenie jest wykonywane bez zatrzymywania procesu?
command-line
make
Daniel Viaño
źródło
źródło
pgrep -a make
make
możesz go zatrzymać i uruchomić ponownie, a powinien on zacząć od miejsca, w którym zakończył.Odpowiedzi:
Jeśli chcesz zobaczyć pełny wiersz poleceń dla każdej instancji
make
uruchomionej na twoim komputerze, otwórz nowy terminal i spróbuj:pgrep
to program, który przeszukuje wszystkie procesy na twoim komputerze. W tym przypadku szuka programów o nazwiemake
. Opcja-a
mówipgrep
do listy zarówno identyfikator procesu i linii poleceń pełną dla każdego procesu dopasowywania. (Bez zwróciłoby-a
to tylko identyfikator procesu.) Aby uzyskać więcej informacji na temat wielu opcji pgrep, zobaczman pgrep
.źródło
pgrep
, wyglądałoby inaczej niż polecenie wpisane w wierszu poleceń.Gdy okno terminala jest aktywne, możesz wstrzymać (zawiesić) proces, naciskając Ctrl+ Z. Następnie możesz przesunąć zadanie w tle, wpisując
bg
(Twoje zadanie będzie teraz kontynuowane w tle, a jednocześnie możesz pracować w wierszu polecenia; jest to równoważne z uruchomieniem zadania&
na końcu wiersza polecenia). Następnie użyj strzałek kursora (w górę i w dół), aby zobaczyć, którego polecenia użyłeś. Jeśli chcesz (ale nie jest to konieczne), możesz przenieść swoją pracę na pierwszy plan, piszącfg
.źródło
for X in {1..1000} ; do sleep $X ; done
wówczas pętla zostanie przerwana, a pozostałe iteracje nie wystąpią.jobs
, jak pokazano w odpowiedzi @ ichabod), a następnie wznowićfg
.Robię coś takiego jak Stefan: ^ Z, aby wstrzymać pracę, a potem biegnę
jobs
. Jeśli masz uruchomionych wiele procesów, być może będziesz musiał ustalić, które zadanie było tym, które zostało wstrzymane, ale ogólnie spowoduje to wyświetlenie wiersza polecenia. Następnie uruchom,fg
aby kontynuować wykonywanie.źródło
Dobrym sposobem na zobaczenie tego dynamicznie jest uruchomienie na górze, a to pokazuje ogólny stan systemu i uruchomione procesy w systemie.
Wykonanie 'ps ux' pokazuje twoje procesy wraz z pid i innymi informacjami, możesz użyć umiejętności, aby zabić niektóre z nich, jeśli chcesz, strona podręcznika jest dobrym zasobem, a wykonanie umiejętności lub zabicie -9 powoduje, że procesy są lepkie zawieszone w urządzeniu czeka itp. Możesz również wysyłać inne sygnały do procesów takich jak -hup, restartowane demony itp.
Góra jest ładna, ponieważ pokazuje rozmiar procesu, upływający czas, bieżące stany procesora oraz pamięć i zamianę.
Często robię $ make> & make.out &, a następnie mniej lub tail -f w pliku dziennika make.out. Od teraz make jest odłączany jako proces od mojej sesji powłoki.
źródło