Cả đầu ra bắt giữ và chạy trên nền với Show
Như đã đề cập trong câu trả lời này, nếu bạn nắm bắt đầu ra bằng Tuy nhiên, có những trường hợp bạn cần điều này. Ví dụ: tôi muốn khởi chạy hai quy trình nói chuyện qua một cổng giữa chúng và lưu stdout của họ vào tệp nhật ký và stdout. Mô -đun Đầu tiên, hãy xem cách thực hiện phần chuyển hướng đầu ra một mình trong câu hỏi này: Python popen: Viết vào stdout và đăng nhập đồng thời Then: main.py
sleep.py
Sau khi chạy:
Stdout được cập nhật cứ sau 0,5 giây cho mỗi hai dòng chứa:
và mỗi tệp nhật ký chứa nhật ký tương ứng cho một quy trình nhất định. Lấy cảm hứng từ: https://eli.thegreenplace.net/2017/interacting-with-a-long-ricky-child-process-in-python/ Được thử nghiệm trên Ubuntu 18.04, Python 3.6.7.
Quy trình nền là các quy trình máy tính chạy đằng sau hậu trường. Ưu điểm cốt lõi của các quá trình chạy trong nền là bạn có thể thực hiện các nhiệm vụ khác ở phía trước. Trong bài viết này, chúng tôi sẽ thảo luận về cách chạy các quy trình nền bằng Python. & NBSP; Chúng tôi cũng sẽ thảo luận về cách kiểm tra và ngừng chạy các quy trình/ứng dụng. Nội dung
Kiểm tra các quy trình và dịch vụ đang chạyChạy các quy trình nền trong Python Bước 1: Tạo tệp Python với mã mà chúng tôi quan tâm đến việc chạy ở chế độ nền Bước 2: Tạo một tập lệnh Python khác sẽ đánh thức quá trình Python trong nền Chạy các quy trình nền trong PythonBước 1: Tạo tệp Python với mã mà chúng tôi quan tâm đến việc chạy ở chế độ nềnsubprocess and os, can be used to run background processes. The general syntax is: subprocess:
os:
Bước 3: Thực hiện tệp Run_Process.py trên Trình chỉnh sửa mã Bước 1: Tạo tệp Python với mã mà chúng tôi quan tâm đến việc chạy ở chế độ nềnBước 2: Tạo một tập lệnh Python khác sẽ đánh thức quá trình Python trong nền
Trên dấu nhắc lệnh: Bước 2: Tạo một tập lệnh Python khác sẽ đánh thức quá trình Python trong nềnGói xử lý phụ:, subprocess, and os, to run the code in “process.py” in the background. Bước 3: Thực hiện tệp Run_Process.py trên Trình chỉnh sửa mã Gói xử lý phụ:
Gói xử lý phụ:os package, we have
Bước 3: Thực hiện tệp Run_Process.py trên Trình chỉnh sửa mãGiết một quá trình chạy Quá trình này khóa tệp results.txt, vì vậy nếu bạn cố gắng xóa nó trong quá trình hoạt động chương trình, bạn sẽ được chào đón với thông báo rằng tệp đang được sử dụng, vì vậy bạn có thể chờ hoặc tiêu diệt quy trình. Giết một quá trình chạyChúng tôi cần tên hình ảnh hoặc ID quy trình (PID) để tiêu diệt một quá trình đang chạy. Thông tin này có thể được tìm thấy trên Trình quản lý tác vụ hoặc bằng cách chạy danh sách TaskL trên dòng lệnh. Bạn có thể cần nhấp chuột phải vào phần tiêu đề và chọn tên PID và xử lý trên Trình quản lý tác vụ (xem bên dưới).. This information can be found on the Task Manager or by running the tasklist on the command line. You might need to right-click on the title section and select PID and Process name on Task Manager (see below). Bất kỳ tùy chọn nào sau đây đều có thể được sử dụng để chấm dứt quy trình chạy (tham khảo ảnh chụp màn hình trên của Trình quản lý tác vụ cho các điểm sau). Sử dụng Trình quản lý nhiệm vụ:Chọn quy trình, nhấp chuột phải và nhấp vào Tác vụ Kết thúc ở phía dưới bên phải của cửa sổ Trình quản lý. Trên dấu nhắc lệnh:
Trong PythonBạn có thể tiêu diệt các tác vụ đang chạy bằng cách sử dụng quá trình phụ hoặc hệ điều hành như sau (lưu ý rằng bạn cần nhập các gói này):subprocess or os as follows (note that you need to import these packages):
Lưu ý: Tùy chọn /F được cấp cho lệnh Taskkill là tùy chọn. Nó được sử dụng để chấm dứt một quá trình một cách mạnh mẽ. Tùy chọn này có thể cần thiết khi đóng một tác vụ được sử dụng bởi một quy trình khác, ví dụ. The /F option issued to the taskkill command is optional. It is used to terminate a process forcefully. This option might be needed when closing a task used by another process, for example. PID thay đổi mỗi khi bạn mở quy trình/ứng dụng. Điều này có nghĩa là PID được sử dụng để tiêu diệt một tác vụ được tạo bởi một ứng dụng nhất định có thể không hoạt động khi ứng dụng được đóng và mở lại. Trong trường hợp như vậy, tên hình ảnh là một tùy chọn tốt hơn để sử dụng.. This means that the PID used to kill a task generated by a given app may not work when an app is closed and opened again. In such a case, Image Name is a better option to use. Sự kết luậnTrong bài viết này, chúng tôi đã thảo luận về cách thức dậy một quá trình và tiếp tục chạy trong nền bằng Python. Chúng tôi đã chứng minh làm thế nào điều này được thực hiện bằng cách chạy một quy trình Python.exe trong nền (bạn có thể làm điều này với bất kỳ quy trình nào). Cuối cùng, chúng tôi đã chỉ ra cách chấm dứt một quy trình đang chạy bằng cách sử dụng các gói Trình quản lý nhiệm vụ, dấu nhắc lệnh và Python.
Chương trình Python có thể chạy trong nền không?Cách dễ nhất để chạy tập lệnh Python để chạy trong nền là sử dụng tính năng Cronjob (trong MacOS và Linux). Trong Windows, chúng ta có thể sử dụng Trình lập lịch tác vụ Windows. Sau đó, bạn có thể đưa ra đường dẫn của tệp tập lệnh Python của bạn để chạy vào một thời điểm cụ thể bằng cách đưa ra các chi tiết thời gian.use cronjob feature (in macOS and Linux). In windows, we can use Windows Task Scheduler. You can then give the path of your python script file to run at a specific time by giving the time particulars.
Làm cách nào để chạy một lệnh trong trăn nền?Và nếu bạn cần chạy các lệnh shell không đồng bộ trong nền, bạn có thể sử dụng quy trình con.popen () thay thế. Với cả hai quá trình phụ. Chạy () và quy trình con.subprocess. Popen() instead. With both subprocess. run() and subprocess.
Làm cách nào để ngăn một tập lệnh Python chạy trong nền?# Tập lệnh đơn giản để bắt đầu / dừng tập lệnh Python ở chế độ nền.# Để sử dụng: # Chỉ cần chạy: "./startstop.sh".Nếu quá trình đang chạy, nó sẽ dừng nó hoặc nó sẽ bắt đầu nếu không.Just run: "./startstop.sh". If the process is running it will stop it or it will start it if not.
Làm cách nào để chạy một quy trình hệ thống trong Python?Cách tiếp cận đầu tiên và thẳng nhất để chạy lệnh shell là bằng cách sử dụng os.system ():.. Nhập hệ điều hành hệ điều hành.hệ thống ('ls -l'). Nhập luồng hệ điều hành = hệ điều hành..... Nhập quá trình phụ = quy trình con..... với Open ('test.txt', 'w') là f: quá trình = quy trình con..... Nhập Shlex Shlex..... quá trình = quy trình con..... process.. |