Làm thế nào để dừng tập lệnh python chạy trong nền

Chúng tôi sẽ giới thiệu cách chạy tập lệnh Python trong nền dưới dạng quy trình nền. Chúng tôi cũng sẽ giới thiệu

# python
python backgroundprocess.py &
0 trong Python

Trong thế giới tự động hóa và khoa học dữ liệu, chúng tôi đã phát triển đến mức có thể dễ dàng tự động hóa các tác vụ hàng ngày của mình và chúng có thể được xử lý ở phần phụ trợ mà không cần cập nhật cho chúng tôi (Trừ khi chúng tôi đã lập trình nó để cập nhật cho chúng tôi)

Bài viết này sẽ hướng dẫn cách tạo tập lệnh và chạy tập lệnh dưới dạng quy trình nền

Các quy trình nền được chạy một lần và sau đó, chúng sẽ tự động được xử lý khi chúng tôi khởi động máy tính và chúng dừng lại khi chúng tôi tắt máy tính

Chúng ta cũng có thể dừng các tiến trình nền bằng cách vào trình quản lý tác vụ hoặc sử dụng lệnh Python để hủy tiến trình bằng ID của nó

Quá trình nền trong Windows bằng Python

Có hai cách khác nhau để chạy tập lệnh Python dưới dạng quy trình nền;

Chúng tôi sẽ sử dụng ________ 00 để chạy tập lệnh Python của bạn dưới dạng quy trình nền.

# python
python backgroundprocess.py &
3 được sử dụng để chạy các tập lệnh Python mà không cần sử dụng cửa sổ đầu cuối

Dưới đây là cú pháp để chạy bất kỳ tập lệnh Python nào mà không cần sử dụng cửa sổ đầu cuối

# python
pythonw backgroundprocess.py

Chúng tôi có thể thay thế

# python
python backgroundprocess.py &
4 bằng tên tệp mà chúng tôi muốn chạy dưới dạng quy trình nền trong lệnh trên

Quá trình nền trong Linux hoặc Mac bằng Python

Để chạy tập lệnh Python dưới dạng quy trình nền trên Linux hoặc Mac, chúng tôi sử dụng toán tử

# python
python backgroundprocess.py &
5 ở cuối lệnh, điều này sẽ làm cho nó chạy dưới dạng quy trình nền

Dưới đây là cú pháp để chạy bất kỳ tập lệnh Python nào dưới dạng quy trình nền trong Linux hoặc Mac

# python
python backgroundprocess.py &

Chúng tôi có thể thay thế

# python
python backgroundprocess.py &
4 bằng tên tệp mà chúng tôi muốn chạy dưới dạng quy trình nền trong lệnh trên

Khi tập lệnh của chúng tôi đang chạy dưới dạng quy trình nền, chúng tôi có thể kiểm tra ID quy trình để dừng quy trình nền bất cứ khi nào chúng tôi muốn. Chúng ta có thể sử dụng lệnh sau trong Windows để hủy quá trình chúng ta vừa bắt đầu

# python
kill -9 {{process id}}

Nếu chúng ta muốn tắt tiến trình trên thiết bị Linux hoặc Mac, chúng ta có thể chạy lệnh sau

# python
python backgroundprocess.py &
0

Trong các lệnh trên,

# python
python backgroundprocess.py &
7 có nghĩa là chúng ta muốn kết thúc tiến trình càng sớm càng tốt. Vì vậy, sử dụng lệnh này sẽ giết quá trình có id mà chúng tôi sẽ cung cấp bên trong dấu ngoặc nhọn

Bây giờ, nếu chúng tôi đã tạo một tập lệnh quan trọng mà chúng tôi muốn kiểm tra xem nó đang hoạt động như thế nào và nhận bản cập nhật về tập lệnh mà chúng tôi đang chạy dưới dạng quy trình nền, chúng tôi có thể ghi hoặc xóa đầu ra từ tập lệnh đó bên trong một tệp khác bằng cách sử dụng đơn giản

Lệnh ghi nhật ký đầu ra từ quy trình nền của chúng tôi được hiển thị bên dưới

# python
python backgroundprocess.py &
2

Nếu chúng tôi muốn ghi lại đầu ra từ quy trình nền của mình trong thiết bị Linux hoặc Mac, chúng tôi có thể sử dụng lệnh sau bên dưới

# python
python backgroundprocess.py &
3

Một điều quan trọng cần lưu ý là đầu ra mà quá trình nền của chúng ta tạo ra sẽ được lưu trước tiên trong bộ nhớ đệm cho đến khi quá trình nền dừng lại. Vì vậy, chúng tôi chỉ có thể lấy nhật ký hoặc tuôn ra đầu ra từ các quy trình nền sau khi chúng tôi đã dừng quy trình

Nhưng điều gì sẽ xảy ra nếu chúng ta không thể dừng quá trình nền vì nó có thể gây nguy cơ mất một số dữ liệu?

Chúng ta có thể sử dụng lệnh sau

# python
python backgroundprocess.py &
4

Nếu chúng tôi muốn ghi trực tiếp đầu ra vào một tệp, chúng tôi có thể sử dụng lệnh này trên thiết bị Linux hoặc Mac, như được hiển thị bên dưới

# python
python backgroundprocess.py &
5

Lệnh trên bây giờ sẽ trực tiếp thêm đầu ra vào tệp

# python
python backgroundprocess.py &
8 của chúng tôi. Nhưng chúng tôi vẫn phải mở thiết bị đầu cuối của mình để lấy đầu ra

Nếu chúng tôi đóng thiết bị đầu cuối trước khi quá trình nền của chúng tôi hoàn tất, tất cả các quy trình sẽ bị dừng. Tất cả các quy trình mà chúng tôi đang chạy sẽ bị treo

Python luôn có giải pháp cho mọi loại vấn đề. Có một lệnh khác được gọi là

# python
python backgroundprocess.py &
9

Lệnh này đảm bảo rằng các quy trình nền của chúng tôi hoàn tất mà không có bất kỳ sự can thiệp nào

Ngay cả khi chúng tôi đóng thiết bị đầu cuối chính, nó vẫn sẽ đảm bảo rằng các quy trình nền của chúng tôi đang hoạt động. Cú pháp sử dụng lệnh

# python
python backgroundprocess.py &
9 được hiển thị bên dưới

# python
python backgroundprocess.py &
9

Ví dụ trên cho thấy chúng ta quên log đầu ra ở file khác để kiểm tra khi cần. Chúng tôi không quên rằng lệnh

# python
python backgroundprocess.py &
9 sẽ tự động tạo nhật ký và lưu nó vào một tệp để xem tất cả các bản ghi trong khi quy trình nền của chúng tôi đang chạy

Lệnh

# python
python backgroundprocess.py &
9 sẽ lưu trữ tất cả nhật ký vào tệp
# python
kill -9 {{process id}}
3. Nếu chúng ta muốn giết tiến trình này, chúng ta có thể dễ dàng sử dụng lệnh
# python
kill -9 {{process id}}
4 mà chúng ta đã sử dụng ở trên để giết tiến trình này

Nhưng nếu chúng ta không nhớ ID của process muốn xóa thì có thể dùng lệnh khác để lấy tên file đang chạy làm background process. Và nó sẽ tìm ID tiến trình và sử dụng lệnh

# python
kill -9 {{process id}}
4 để giết tiến trình