Làm cách nào để biết dịch vụ python có đang chạy không?

Trong blog này, trước tiên chúng tôi sẽ liệt kê tất cả các dịch vụ đang chạy. Sau đó, chúng tôi sẽ thực hiện một dịch vụ và chúng tôi sẽ kiểm tra trạng thái của dịch vụ. Sau đó, chúng tôi sẽ dừng dịch vụ và bắt đầu dịch vụ thông qua tập lệnh Python

Ảnh của Hitesh Choudhary trên Bapt
import os
import shlex
Liệt kê tất cả các dịch vụ đang chạy

Một bộ lọc phổ biến khác là — type= filter. Chúng tôi có thể yêu cầu systemctl chỉ hiển thị các đơn vị thuộc loại mà chúng tôi quan tâm. Ví dụ: để chỉ xem các đơn vị dịch vụ đang hoạt động, chúng ta có thể sử dụng

hệ điều hành. popen[cmd, mode=’r’, buffering=- 1]

Mở một đường ống đến hoặc từ lệnh cmd. Giá trị trả về là một đối tượng tệp mở được kết nối với đường ống, có thể được đọc hoặc ghi tùy thuộc vào chế độ là 'r' [mặc định] hay 'w'. Đối số đệm có cùng ý nghĩa với đối số tương ứng với hàm open[] tích hợp. Đối tượng tệp được trả về đọc hoặc ghi chuỗi văn bản thay vì byte

Phương thức đóng trả về Không nếu quy trình con đã thoát thành công hoặc mã trả về của quy trình con nếu có lỗi. Trên các hệ thống POSIX, nếu mã trả về là số dương, mã đó biểu thị giá trị trả về của quy trình được dịch trái một byte. Nếu mã trả về là số âm, quá trình đã bị kết thúc bởi tín hiệu được cung cấp bởi giá trị phủ định của mã trả về. [Ví dụ: giá trị trả về có thể là — tín hiệu. SIGKILL nếu quy trình con bị hủy. ] Trên các hệ thống Windows, giá trị trả về chứa mã trả về số nguyên đã ký từ tiến trình con

def listOfRunningServices[]:
try:
print["Listing all running service"]

#Check all the running service
for line in os.popen["systemctl --type=service --state=running"]:
services = line.split[]
print[services]
pass

except OSError as ose:
print["Error while running the command", ose]

pass

Gọi chức năng

listOfRunningServices[]

đầu ra

Chúng ta có thể thấy, rất nhiều dịch vụ đang chạy. Hãy để chúng tôi kiểm tra apache2. trạng thái dịch vụ sử dụng tập lệnh

Xem trạng thái của một dịch vụ

Hãy để chúng tôi sử dụng dịch vụ apache2 và kiểm tra trạng thái

def checkServiceStatus[]:
try:
print["View Apache2 service status"]

#Check all the runnung service
for line in os.popen["systemctl status apache2.service"]:
services = line.split[]
print[services]
pass

except OSError as ose:
print["Error while running the command", ose]

pass
checkServiceStatus[]

đầu ra

Sử dụng shlex tách chuỗi

Lớp shlex giúp dễ dàng viết các trình phân tích từ vựng cho các cú pháp đơn giản giống như cú pháp của Unix shell. Điều này thường sẽ hữu ích để viết các ngôn ngữ nhỏ, [ví dụ: trong các tệp điều khiển chạy cho các ứng dụng Python] hoặc để phân tích các chuỗi được trích dẫn

bánh mì. split[s, comments=False, posix=True]- Tách chuỗi s bằng cú pháp giống như trình bao

def checkServiceStatus[]:
try:
print["View Apache2 service status"]

#Check apache2 service
for line in os.popen["systemctl status apache2.service"]:
services = shlex.split[line]
print[services]
pass

except OSError as ose:
print["Error while running the command", ose]

pass
checkServiceStatus[]

đầu ra

Dừng dịch vụ Apache2
def stopService[]:
try:
#stop apache2 service
os.popen["sudo systemctl stop apache2.service"]
print["Apache2 service terminated successfully..."]

except OSError as ose:
print["Error while running the command", ose]

pass
stopService[]

đầu ra. Dịch vụ Apache2 đã kết thúc thành công…

Kiểm tra trạng thái sau khi chấm dứt
def checkServiceStatus[]:
try:
print["Apache2 status..."]

#Check apache2 service
for line in os.popen["sudo systemctl status apache2.service"]:
services = line.split[]
print[services]

pass


except OSError as ose:
print["Error while running the command", ose]

pass
checkServiceStatus[]

đầu ra

Bắt đầu dịch vụ
def startService[]:
try:
#start apache2 service
os.popen["sudo systemctl start apache2.service"]
print["Apache2 service started successfully..."]

except OSError as ose:
print["Error while running the command", ose]

pass
startService[]

đầu ra. Dịch vụ Apache2 đã bắt đầu thành công…

Kiểm tra lại trạng thái
def checkServiceStatus[]:
try:
print["Apache2 status after start..."]

#Check apache2 service
for line in os.popen["sudo systemctl status apache2.service"]:
#services = shlex.split[line]
services = line.split[]
print[services]

pass

except OSError as ose:
print["Error while running the command", ose]

pass
checkServiceStatus[]

đầu ra

Xem dịch vụ apache2 bằng lệnh ps

ps - ps hiển thị thông tin về lựa chọn các quy trình đang hoạt động. thông tin mặc định để hiển thị bao gồm. ID quy trình [PID], thiết bị đầu cuối điều khiển [TTY], thời gian CPU mà quy trình đã sử dụng và lệnh liên quan. lệnh ps trên Ubuntu để liệt kê và định vị các quy trình hiện đang chạy

tùy chọn 'a' hướng dẫn 'ps' liệt kê các quy trình của tất cả người dùng trên hệ thống thay vì chỉ quy trình của người dùng hiện tại. Tương tự, tùy chọn 'x' bao gồm các quy trình không chạy trong thiết bị đầu cuối, chẳng hạn như quy trình daemon. Vì vậy, đó là lý do tại sao tất cả các quy trình trong hệ thống được liệt kê

Lệnh grep được sử dụng để tìm kiếm tệp văn bản cho các mẫu

def checkServiceStatus[]:
try:
print["View Apache2 service status"]

#Check apache2 service
for line in os.popen["ps -ax | grep apache2 | grep -v grep"]:
services = shlex.split[line]
print[services]
pass

except OSError as ose:
print["Error while running the command", ose]

pass
checkServiceStatus[]

đầu ra

Nhận ID quy trình

def listOfRunningServices[]:
try:
print["Listing all running service"]

#Check all the running service
for line in os.popen["systemctl --type=service --state=running"]:
services = line.split[]
print[services]
pass

except OSError as ose:
print["Error while running the command", ose]

pass
0

đầu ra

Chúng tôi thấy dễ dàng rằng chúng tôi có thể liệt kê các dịch vụ đang chạy và các hoạt động khác thông qua mô-đun os trong Python

Nếu bạn có bất kỳ câu hỏi nào liên quan đến blog của tôi, bạn có thể gửi email tới nutanbhogendrasharma@gmail. com. Cảm ơn vì đã đọc

Làm cách nào để kiểm tra trạng thái Python trong Linux?

Kiểm tra phiên bản Python trên dòng lệnh. --phiên bản , -V , -VV . Thực thi lệnh python hoặc python3 với tùy chọn --version hoặc -V trên dấu nhắc lệnh [ cmd ] trên Windows hoặc thiết bị đầu cuối trên Mac và Linux.

Tập lệnh Python nào đang chạy?

Nếu tập lệnh được chỉ định trên dòng lệnh Python, bạn có thể thấy điều đó bằng cách sử dụng Process Explorer miễn phí. Khi nó đang chạy, nhấp chuột phải vào bất kỳ tiêu đề cột nào và chọn "Chọn cột. ". Chuyển đến tab "Xử lý hình ảnh", đánh dấu kiểm bên cạnh "Dòng lệnh" và nhấp vào OK .

Chủ Đề