Làm thế nào để đóng tất cả các quá trình nền trong unix?


3

Tôi có một cái gì đó như:

cd project && python manage.py runserver &
cd utilities && ./coffee_auto_compiler.py

Và tôi muốn cả hai cùng đóng cửa Ctrl-C (hoặc một số lệnh khác). Làm thế nào tôi có thể hoàn thành nó?

CHỈNH SỬA : Tôi đã thử sử dụng jobs -x killkill ``jobs -p , nhưng nó dường như không giết chết những gì tôi cần. Ý tôi là đây:

moon      8119  0.0  0.0   7556  3008 pts/0    S    13:17   0:00 /bin/bash
moon      8120  6.8  0.4  24568 18928 pts/0    S    13:17   0:00 python manage.py runserver

jobs -p hãy cho tôi xử lý 8119, nhưng tôi cũng cần đóng 8120, vì đó là lệnh đầu tiên được mở.

Nếu nó có ích, các lệnh thực sự nằm trong Makefile và tôi muốn nó chạy hai trình nền cùng một lúc (và bằng cách nào đó đóng chúng cùng một lúc). Và vâng, tôi đang sử dụng Ubuntu, với bash

Câu trả lời:


1

Cách dễ nhất? Vì tôi không biết bạn đang sử dụng bản phân phối nào, tôi cho rằng đó là Ubuntu. hệ thống & gt; tùy chọn & gt; phím tắt. nhấp vào thêm, đặt tên cho nó, dán vào các lệnh của bạn như thế này: "lệnh1", "lệnh2" bấm thêm. nhấp vào phím tắt mới, đặt phím tắt.

Nếu vì lý do nào đó không hoạt động, hãy tạo một trình khởi chạy với các lệnh, đảm bảo rằng nó thực hiện những gì bạn muốn và sau đó sử dụng các hướng dẫn ở trên để ràng buộc trình khởi chạy với phím tắt.


giả sử bạn không biết cách giết một tiến trình, về cơ bản nó giống như giết "tên tiến trình"
Jasen

Tôi biết cách giết một tiến trình, nhưng tôi muốn làm cho nó dễ dàng như Ctrl-C
Gabi Purcaru

bạn đang chạy phiên bản linux nào? Tôi không muốn bị kích thích, nhưng tôi chỉ cho bạn câu trả lời trên một phiên bản linux và tôi có thể tùy chỉnh giải pháp nếu tôi biết bạn đang sử dụng phiên bản nào. Hoặc, bạn đã bỏ lỡ câu trả lời. một trong hai.
Jasen

@Jason xin lỗi về điều đó, tôi đã sửa đổi câu hỏi.
Gabi Purcaru

Tôi đã thêm nhiều hơn vào câu trả lời của tôi tôi nghĩ rằng nó nên làm những gì bạn muốn. Nếu tôi cần làm rõ một bước, tôi sẽ không điên ha ha.
Jasen

1

Để loại bỏ tất cả các công việc chạy dưới vỏ Korn (ksh) hoặc vỏ Bourne-again (bash), hãy nhập:

kill `jobs -p`

Trong bash, bạn cũng có thể sử dụng biến thể sau:

jobs -x kill

nguồn


1

pstree

và sau đó giết tiến trình root bằng cách sử dụng kill hoặc pskill các lệnh này có thể không có sẵn trong bản phân phối của bạn


Chỉ cần đọc thêm thông tin, gợi ý khác của tôi là tạo một kịch bản và gọi daemon từ kịch bản này, giết quá trình kịch bản nên xóa nó.
afifio

0

Nếu bạn gửi các lệnh của bạn trong backticks:

`cd project && python manage.py runserver` &
`cd utilities && ./coffee_auto_compiler.py` &

và chạy nó với sự tương tác phiên bash bạn sẽ có thể giết tất cả chúng chỉ với Ctrl + C .

Nhưng bạn sẽ không thể sử dụng Ctrl + C trong thiết bị đầu cuối và đồng thời không giết tất cả các lệnh "backticky" đang được chạy từ thiết bị đầu cuối này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.