Jakie jest znaczenie zabicia% 1

10

Widziałem następujące polecenie:

$ kill %1

Jakie jest zastosowanie tego oświadczenia?

q0987
źródło
Zauważ też, że zshma ukończone zadanie, takie jak uruchomienie, htop &a następnie disown %[TAB]autouzupełnianie do disown %htop. Uwielbiam zsh:)
new123456

Odpowiedzi:

14

Krótko,

Oznacza to zabicie zadania numer 1, a nie przetworzenie numeru jeden.

Zadania można wyświetlić za pomocą jobspolecenia.

Mówiąc szerzej, dotyczy to jakiejkolwiek powłoki, której używasz, a składnia może się różnić w zależności od powłoki.

Korzystając z powłoki bash, użytkownik może jednocześnie wykonywać kilka procesów (zadań), których nadrzędnym procesem jest używana powłoka. Podstawy kontroli zadań bash Google

Wbudowane polecenie kill służy do wysyłania sygnału do jednego z tych potoków zadań. Jeśli określony sygnał nie jest określony, używany jest SIGTERM, który zwykle kończy (zabija) zadanie, stąd nazwa zabić. Ale można podać dowolny sygnał, z których niektóre mogą w jakiś sposób zresetować proces lub spowodować nie zabijanie.

Na koniec% 1 jest jednym ze sposobów (spośród wielu!) Określenia, do którego zadania chcesz wysłać sygnał. % 1 odnosi się do zadania na szczycie stosu zadań w tle.

Anders Abel
źródło
Drobny .. ale to nie jest stos, to jest jak kolejka.
niekończące się
6

Na przykład w tle:

# find / &
[1] ....

# ls -lr /usr &
[2] ....

Teraz tutaj są dwa procesy uruchomione w tle i podłączone do bieżącego terminala. Jeśli to zrobisz: zabij% 1

pierwsze polecenie „znajdź” powyżej zostanie zakończone. Jak powiedział Anders, możesz wyświetlić listę aktualnie działających procesów w tle na terminalu i zabić je:

# jobs
[1] find / ...
[2] ls -lr ...

# kill %1
Albert
źródło