Điểm:0

Khi tôi "dừng" một quy trình hệ thống, quy trình lệnh "ExecStart" không dừng

lá cờ it

Tôi chạy một dịch vụ hệ thống với cấu hình sau my_script.service:

[Đơn vị]
Mô tả=Chương trình demo của tôi.

[Dịch vụ]
Người dùng = tên tôi
ExecStart=/my_scripts/some_async_python_script.py
Khởi động lại = luôn luôn
Khởi động lạiSec=5s

[Cài đặt]
WantedBy=multi-user.target

Trước khi chạy tôi sẽ làm điều này một lần: Sudo systemctl daemon-tải lạiSudo systemctl enable my_script.service và sau đó tôi sẽ bắt đầu như vậy: Sudo systemctl bắt đầu my_script.service

Cho đến nay điều này làm việc tốt.

Vấn đề tôi gặp phải là khi tôi dừng nó với Sudo systemctl dừng my_script.service và sau đó làm htop tôi có thể thấy /my_scripts/some_async_python_script.py vẫn chạy. Tôi có thể thấy nó có một quá trình cha mẹ. Khi tôi giết tiến trình con, nó đã chết (tức là tôi không cần giết tiến trình cha).

Câu hỏi của tôi là: Tại sao lệnh dịch vụ của tôi vẫn chạy mặc dù tôi đã dừng dịch vụ?

Michael Hampton avatar
lá cờ cz
Điều gì bất thường và bất ngờ về tập lệnh Python này? ví dụ. nó ngã ba? Làm thế nào mà nó có được một tiến trình con?
Newskooler avatar
lá cờ it
Tập lệnh python kết nối với websocket và truyền dữ liệu không đồng bộ và tôi nghi ngờ đó là vấn đề (nhưng không hiểu đầy đủ tại sao). Tập lệnh sử dụng các thư viện như `từ luồng nhập aiostream` và `ổ cắm nhập` và `từ ổ cắm web nhập kết nối` Thông tin đó có giúp được gì không?
Newskooler avatar
lá cờ it
@MichaelHampton có thêm thông tin nào về phía tôi mà tôi có thể trợ giúp không?
Michael Hampton avatar
lá cờ cz
Trạng thái của dịch vụ sau khi bạn cố gắng dừng nó là gì? Có gì trong tạp chí?
Newskooler avatar
lá cờ it
Trước khi tôi `dừng` nó báo `Hoạt động: đang hoạt động (đang chạy)` và sau khi `dừng` nó báo `Hoạt động: không hoạt động (đã chết)` (như mong đợi). PID chính thực sự đã biến mất (khi tôi thực hiện `htop`, tôi không thấy nó ở đâu), tuy nhiên tôi thấy một PID khác đang chạy, đó là mã bên trong dịch vụ systemd của tôi. Cái đó tôi cần dừng thủ công. Tôi không biết tại sao systemd cũng không dừng nó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.