Kill All Stopped Jobs Linux

Kill All Stopped Jobs Linux



Trong Linux, một công việc đề cập đến một quá trình được bắt đầu và quản lý bởi shell. Đó có thể là một lệnh duy nhất, một lệnh shell dài và phức tạp bao gồm các đường dẫn và chuyển hướng, một tệp thực thi hoặc một tập lệnh. Mỗi công việc trong Linux được quản lý bằng cách gán một IP công việc tuần tự được liên kết với một quy trình cụ thể.

Một khái niệm chính cần hiểu về các công việc Linux là trạng thái của chúng. Có hai trạng thái chính cho các công việc Linux:







  • Vấn đề xung quanh
  • Tiểu sử

Công việc nền tảng

Một công việc nền trước đề cập đến một lệnh hoặc một chương trình được thực thi trong trình bao và chiếm phiên đầu cuối cho đến khi nó hoàn thành. Một ví dụ sẽ khởi chạy trình quản lý tệp hoặc trình duyệt trong thiết bị đầu cuối



Ví dụ: ảnh chụp màn hình sau đây cho thấy một cửa sổ đầu cuối với công việc nền trước.







Trong hình trên, lời nhắc trình bao không khả dụng cho đến khi cửa sổ Firefox đóng lại.

Công việc cơ bản

Đối lập với tiền cảnh là các công việc hậu cảnh. Để bắt đầu một công việc trong shell như một công việc nền, chúng tôi sử dụng ký hiệu và (&). Sử dụng điều này sẽ yêu cầu trình bao đặt bất kỳ lệnh nào đến trước ký hiệu và trong nền và ngay lập tức hiển thị lời nhắc trình bao.



Ví dụ dưới đây cho thấy cách đặt công việc Firefox (trong ví dụ trên) ở chế độ nền.

Như bạn có thể thấy, lời nhắc trình bao hiện khả dụng mặc dù Firefox vẫn đang chạy.

Bạn sẽ nhận thấy các giá trị số được hiển thị cho các công việc nền. Giá trị đầu tiên, được biểu thị bằng dấu ngoặc vuông ([]), hiển thị ID công việc, trong khi giá trị khác cho biết PID của quy trình được liên kết với công việc.

Cách quản lý công việc nền

Lệnh công việc xử lý việc kiểm soát công việc. Điều này cho phép bạn xem các công việc trong nền.

sudo việc làm

Thực hiện lệnh trên sẽ hiển thị các công việc nền như hình dưới đây:

Bắt đầu từ phía bên trái, chúng ta có ID công việc.

Ngay sau dấu ngoặc là dấu cộng (+) hoặc dấu trừ (-). Dấu cộng cho biết đây là công việc hiện tại, trong khi số trừ cho biết công việc tiếp theo.

Dấu ngoặc tiếp theo hiển thị trạng thái của công việc. Điều đó có thể đang chạy, dừng, kết thúc, hoàn thành hoặc thoát bằng mã trạng thái.

Cuối cùng, phần cuối cùng hiển thị tên thực tế của công việc.

Hiển thị công việc với PID

Để hiển thị các công việc nền với các giá trị PID tương ứng của chúng, chúng tôi sử dụng cờ -l như sau:

việc làm -NS

Điều đó sẽ hiển thị các công việc nền với các giá trị PID của chúng, như thể hiện trong hình ảnh bên dưới.

Công việc nền với đầu ra

Giả sử chúng ta có một công việc mà chúng ta muốn chạy ở chế độ nền, kết xuất một đầu ra trên màn hình. Ví dụ, trong ví dụ trên, tôi đặt lệnh apt, có rất nhiều đầu ra ở chế độ nền, mà không làm rối loạn thiết bị đầu cuối của tôi.

Để làm điều này, bạn có thể chuyển hướng đầu ra trong / dev / null dưới dạng:

sudo apt-get cập nhật > /nhà phát triển/vô giá trị&

Làm thế nào để đưa công việc nền lên nền trước

Chúng ta có thể đưa các công việc nền lên nền trước bằng cách sử dụng lệnh fg. Ví dụ: để đưa công việc firefox với ID công việc là 1 xuống nền, chúng ta có thể thực hiện:

fg %1

Điều đó sẽ đưa công việc lên hàng đầu như:

[email được bảo vệ]: ~ $fg %1

firefox

Tùy chọn lệnh công việc

Lệnh công việc không có nhiều tùy chọn.

Chúng tôi đã thảo luận về -l để hiển thị các công việc với ID quy trình của chúng.

Các tùy chọn khác mà bạn có thể chuyển cho lệnh công việc bao gồm:

  • -n - Điều này hiển thị các công việc đã thay đổi trạng thái của chúng kể từ lần thông báo cuối cùng. Ví dụ, một công việc đã chuyển từ trạng thái đang chạy sang trạng thái dừng.
  • -P - Chỉ liệt kê các PID của các công việc.
  • -NS –Running job only
  • -NS - Chỉ hiển thị các công việc đã dừng.

Làm thế nào để chấm dứt hoặc giết việc làm

Chúng ta có thể kết thúc công việc bằng cách sử dụng lệnh kill, theo sau là ID công việc, chuỗi con hoặc ID quy trình.

Giết bằng cách sử dụng id công việc

Để kết thúc một công việc với ID công việc, chúng tôi sử dụng% theo sau là giá trị id như:

giết chết %%

Điều này sẽ giết chết công việc hiện tại; điều này tương tự như% +.

Giết một công việc bằng một chuỗi con

Kết thúc một công việc với một chuỗi con, đặt tiền tố cho chuỗi con bằng%? theo sau là giá trị chuỗi con là:

giết chết %? gnome-máy tính

GHI CHÚ : Linux thực hiện các công việc đồng thời. Điều đó có nghĩa là nó sẽ nhảy qua lại giữa các công việc có sẵn cho đến khi chúng hoàn thành. Do đó, việc kết thúc một phiên đầu cuối với các công việc đang chạy sẽ chấm dứt tất cả các công việc của bạn.

Bạn không phải lo lắng về điều này nếu sử dụng bộ ghép kênh đầu cuối như tmux hoặc màn hình, vì bạn có thể gắn lại chúng.

Làm thế nào để loại bỏ các công việc bị dừng lại

Đối với chúng tôi để giết tất cả các công việc đã dừng, chúng tôi cần phải gắn hai lệnh lại với nhau. Thao tác đầu tiên sẽ lấy PID của tất cả các công việc đã dừng và thao tác tiếp theo sẽ giết tất cả các công việc được cung cấp.

Để xem các công việc đã dừng, chúng tôi sử dụng lệnh

việc làm -NS

Lệnh này hiển thị tất cả các công việc đã dừng.

Có được điều này, chúng ta có thể lấy PID của các công việc đã dừng và chuyển chúng thành lệnh kill như:

sudo giết chết -9 ``việc làm -P-NS``

Điều này sẽ giết chết tất cả các công việc đã dừng.

Phần kết luận

Hướng dẫn này đã trình bày các khái niệm về kiểm soát công việc trong Linux và cách lấy thông tin về các công việc. Cần lưu ý rằng việc kiểm soát công việc có thể không khả dụng tùy thuộc vào sự lựa chọn của bạn.

Cảm ơn bạn đã đọc & Happy Shells.