Hướng dẫn python check process running - quá trình kiểm tra python đang chạy
Tôi đang cố gắng tạo ra một kịch bản Python mà sau này tôi sẽ chạy như một dịch vụ. Bây giờ tôi chỉ muốn chạy một phần cụ thể của mã khi iTunes đang chạy. Tôi hiểu từ một số nghiên cứu rằng bỏ phiếu toàn bộ danh sách lệnh và sau đó tìm kiếm ứng dụng cho danh sách đó là tốn kém. Show Tôi phát hiện ra rằng các quy trình trên các hệ điều hành dựa trên UNIX tạo một tệp khóa để thông báo rằng chương trình hiện đang chạy, tại thời điểm đó chúng ta có thể sử dụng 0 để kiểm tra xem tệp có tồn tại để xác định xem chương trình có chạy hay không.Có một tệp khóa tương tự được tạo trên Windows không? Nếu không phải là những cách khác nhau trong Python mà theo đó chúng ta có thể xác định xem một quá trình có đang chạy hay không? Tôi đang sử dụng giao diện Python 2.7 và iTunes com.
Martineau Huy hiệu vàng 116K2525 gold badges161 silver badges286 bronze badges Hỏi ngày 16 tháng 10 năm 2011 lúc 20:33Oct 16, 2011 at 20:33
3 Bạn không thể dựa vào các tệp khóa trong Linux hoặc Windows. Tôi sẽ chỉ cắn viên đạn và lặp lại thông qua tất cả các chương trình đang chạy. Tôi thực sự không tin rằng nó sẽ "đắt tiền" như bạn nghĩ. PSUTIL là một cáp mô-đun Python đa nền tảng tuyệt vời để liệt kê tất cả các chương trình đang chạy trên một hệ thống.
monk-time 1.88312 Huy hiệu bạc17 Huy hiệu đồng12 silver badges17 bronze badges Đã trả lời ngày 17 tháng 10 năm 2011 lúc 1:54Oct 17, 2011 at 1:54
MarkmarkMark 105K18 Huy hiệu vàng167 Huy hiệu bạc228 Huy hiệu Đồng18 gold badges167 silver badges228 bronze badges 8 Mặc dù @zeller đã nói rằng đây là một ví dụ về cách sử dụng 1. Vì tôi chỉ đang tìm kiếm các lựa chọn thay thế vani Python ...vanilla python alternatives...
Và bây giờ bạn có thể làm:
Để tránh gọi đây nhiều lần và có cái nhìn tổng quan về tất cả các quy trình theo cách này bạn có thể làm điều gì đó như:
Đã trả lời ngày 26 tháng 3 năm 2015 lúc 9:50Mar 26, 2015 at 9:50
Ewerybodyewerybodyewerybody 1.31313 Huy hiệu bạc28 Huy hiệu đồng13 silver badges28 bronze badges 6 2 Trả về một tay cầm cửa sổ nếu bất kỳ cửa sổ nào có tên lớp đã cho. Nó tăng 3 nếu không.
Tôi thấy rằng tên lớp cửa sổ cho biểu tượng khay Dropbox là DropboxTrayicon bằng cách sử dụng Spy Window Autohotkey. Xem thêm MSDN FindWindow Đã trả lời ngày 20 tháng 8 năm 2012 lúc 16:17Aug 20, 2012 at 16:17
Jisang Yoojisang YooJisang Yoo 3.56019 huy hiệu bạc31 huy hiệu đồng19 silver badges31 bronze badges 2 Các tệp khóa thường không được sử dụng trên Windows (và hiếm khi trên Unix). Thông thường khi một chương trình Windows muốn xem liệu một phiên bản khác của chính nó đã chạy, nó sẽ gọi 4 với một tiêu đề hoặc tên lớp đã biết.
Đã trả lời ngày 16 tháng 10 năm 2011 lúc 21:09Oct 16, 2011 at 21:09
GabegabeGabe 83.6K12 Huy hiệu vàng136 Huy hiệu bạc233 Huy hiệu Đồng12 gold badges136 silver badges233 bronze badges 9 Tôi muốn thêm giải pháp này vào danh sách, cho các mục đích lịch sử. Nó cho phép bạn tìm hiểu dựa trên .exe thay vì tiêu đề cửa sổ và cũng trả về bộ nhớ được sử dụng & PID.
Một lát đầu ra ví dụ:
Đã trả lời ngày 31 tháng 12 năm 2016 lúc 16:17Dec 31, 2016 at 16:17
cho Python 3.7
Điều này hoạt động cho Python 3.8 & psutil 5.7.0, Windows Đã trả lời ngày 30 tháng 8 năm 2019 lúc 0:33Aug 30, 2019 at 0:33
0m3r0m3r0m3r 11.8K15 Huy hiệu vàng31 Huy hiệu bạc69 Huy hiệu đồng15 gold badges31 silver badges69 bronze badges Thử mã này: 0Và để kiểm tra xem quá trình có đang chạy không: 1Đã trả lời ngày 6 tháng 11 năm 2020 lúc 2:07Nov 6, 2020 at 2:07
mg34mg34mg34 Phù hiệu bằng đồng 3122 bronze badges Bạn có hài lòng với lệnh Python của bạn chạy một chương trình khác để có được thông tin không? Nếu vậy, tôi khuyên bạn nên xem PSList và tất cả các tùy chọn của nó. Ví dụ: những điều sau đây sẽ cho bạn biết về bất kỳ quy trình iTunes đang chạy nào 2Nếu bạn có thể tìm ra cách giải thích kết quả, điều này hy vọng sẽ giúp bạn đi. Edit: Khi tôi không chạy iTunes, tôi sẽ nhận được như sau: 3Với iTunes đang chạy, tôi nhận được một dòng bổ sung này: 4Tuy nhiên, lệnh sau đây chỉ in thông tin về chính chương trình iTunes, tức là với đối số 5: 5Đã trả lời ngày 16 tháng 10 năm 2011 lúc 20:41Oct 16, 2011 at 20:41
Clare MacRaeclare MacRaeClare Macrae 3.5722 Huy hiệu vàng28 Huy hiệu bạc44 Huy hiệu đồng2 gold badges28 silver badges44 bronze badges 5 Nếu không thể dựa vào tên quy trình như các tập lệnh Python sẽ luôn có python.exe dưới dạng tên quy trình. Nếu tìm thấy phương pháp này rất tiện dụng 6Kiểm tra tài liệu để biết thêm thông tin http://psutil.readthedocs.io/en/latest/#psutil.pid_exists Đã trả lời ngày 17 tháng 12 năm 2017 lúc 16:41Dec 17, 2017 at 16:41
AkramakramAkram 4134 Huy hiệu bạc19 Huy hiệu đồng4 silver badges19 bronze badges Có một mô -đun Python gọi là WMI. 7Đã trả lời ngày 9 tháng 9 năm 2020 lúc 3:48Sep 9, 2020 at 3:48
Theo bài đăng của Ewerybody: https://stackoverflow.com/a/29275361/7530957 Nhiều vấn đề có thể phát sinh:
Mã 'Ewerybody' sẽ không hoạt động nếu tên quy trình dài. Vì vậy, có một vấn đề với dòng này: 8Bởi vì Last_line sẽ ngắn hơn tên quy trình. Vì vậy, nếu bạn chỉ muốn biết nếu một quy trình/quy trình đang hoạt động: 9Thay vào đó cho tất cả các thông tin của một quy trình/quy trình 0Đã trả lời ngày 29 tháng 5 năm 2020 lúc 11:06May 29, 2020 at 11:06
SqualosqualoSqualo 7910 Huy hiệu đồng10 bronze badges 1 Phương pháp này dưới đây có thể được sử dụng để phát hiện thời tiết quá trình [ví dụ: notepad.exe] đang chạy hay không. 1Gói Pymem là cần thiết.Để cài đặt nó, 2Đã trả lời ngày 16 tháng 2 năm 2021 lúc 8:59Feb 16, 2021 at 8:59
Điều này hoạt động độc đáo 3Đã trả lời ngày 13 tháng 4 năm 2016 lúc 21:55Apr 13, 2016 at 21:55
Nếu bạn đang thử nghiệm ứng dụng với cư xử, bạn có thể sử dụng 6.Tương tự với nhận xét trước đây, bạn có thể sử dụng chức năng này: 4 7 có thể là 'uia' hoặc 'win32' 8 Nếu để kết nối lại lực với ứng dụng trong 5 giây.Đã trả lời ngày 11 tháng 9 năm 2019 lúc 14:34Sep 11, 2019 at 14:34
5Đã trả lời ngày 16 tháng 10 năm 2019 lúc 16:06Oct 16, 2019 at 16:06
6Đã trả lời ngày 24 tháng 4 năm 2020 lúc 12:43Apr 24, 2020 at 12:43
Viraj Wadateviraj WadateViraj Wadate 4.6791 Huy hiệu vàng27 Huy hiệu bạc28 Huy hiệu đồng1 gold badge27 silver badges28 bronze badges 9 là giải pháp tốt nhất cho việc này. 7Đã trả lời ngày 9 tháng 2 năm 2021 lúc 12:21Feb 9, 2021 at 12:21
VoldemortVoldEmortVoldemort 2533 Huy hiệu bạc16 Huy hiệu Đồng3 silver badges16 bronze badges Bạn chỉ có thể sử dụng 0 gửi tín hiệu 0 (không giết chết quy trình) và kiểm tra lỗi. 8Đã trả lời ngày 3 tháng 7 năm 2021 lúc 17:37Jul 3, 2021 at 17:37
Thalescrthalescrthalescr Huy hiệu bạc 1011 Huy hiệu đồng1 silver badge4 bronze badges Tôi thích giải pháp của @Awerybody với sự thay đổi nhỏ này 9Đã trả lời ngày 13 tháng 2 lúc 6:25Feb 13 at 6:25
|