jak ustawić w kolejce polecenie, aby zostało uruchomione po zakończeniu innego polecenia?

9

Czasami uruchamiam program, który zajmuje bardzo dużo czasu ( emerge), a potem zdaję sobie sprawę, że powinienem iść do łóżka zamiast na niego czekać. Gdybym wiedział to przede wszystkim, pobiegłbym

program; halt

Jednak teraz, gdy już uruchomiłem program, jak mogę „zaplanować” zamknięcie komputera po zakończeniu tego procesu? Czy Ctrl+zwtedy fg; haltbędzie OK?

phunehehe
źródło

Odpowiedzi:

15

Tak, to by zadziałało.

W razie wątpliwości możesz to przetestować

  • sleep 15

  • Ctrl+z

  • fg; echo "it works"

mru
źródło
2

Innym sposobem jest haltwpisanie terminala podczas działania pierwszego polecenia; dopóki pierwsze polecenie nie odczyta danych wejściowych w pewnym momencie, będzie znajdować się w buforze terminala, a powłoka odczyta je po zakończeniu pierwszego programu

Michał Mrożek
źródło
1

Za pomocą waitpolecenia

$ sleep 10 &
[1] 29703
$ wait 29703 && echo hello
[1]+  Done                    sleep 10
hello
Gajusz
źródło