Cách chạy daemon trong Python bằng lệnh nohup
2024-10-21 12:06:42
tin tức
tiyusaishi
I. Giới thiệu
Trong phát triển Python, đôi khi chúng ta cần chạy một số tập lệnh hoặc chương trình chạy dài có thể mất nhiều thời gian để hoàn thành hoặc chúng ta muốn chúng tiếp tục chạy ngay cả sau khi chúng ta thoát khỏi thiết bị đầu cuối hoặc đóng phiên. Tại thời điểm này, chúng ta có thể sử dụng lệnh nohup trong hệ thống Linux để đạt được điều này. Bài viết này sẽ trình bày chi tiết cách chạy daemon trong Python bằng lệnh nohup.
2. Hiểu lệnh nohup
Nohup là chữ viết tắt của "nohangup" và lệnh này cho phép chúng tôi chạy một chương trình tiếp tục chạy ngay cả sau khi đóng thiết bị đầu cuối hoặc phiên. Lệnh hoạt động bằng cách chạy một subshell thực thi lệnh được chỉ định trong subshell này và chuyển hướng tất cả đầu ra đến một tệp có tên nohup.out để lệnh vẫn chạy trong nền ngay cả khi thiết bị đầu cuối bị đóng.
3. Sử dụng lệnh nohup để chạy chương trình Python
Cú pháp sử dụng lệnh nohup trong terminal để chạy chương trình Python như sau:
''Ầm ầm
nohuppythonyour_script.py>output.log&
```
Các thông số ở đây được giải thích như sau:
'pythonyour_script.py': Đây là tập lệnh Python mà bạn muốn chạy. Vui lòng thay thế 'your_script.py' bằng tên tệp tập lệnh của bạn. Nếu các tệp tập lệnh của bạn nằm trong các thư mục khác nhau, hãy nhớ bao gồm đường dẫn đầy đủ.
'>output.log': Thao tác này chuyển hướng tất cả đầu ra, bao gồm lỗi và đầu ra tiêu chuẩn, đến tệp có tên output.log. Bạn có thể chọn sử dụng tên tệp và đường dẫn khác để lưu đầu ra. Nếu bạn không chỉ định tệp đầu ra, đầu ra sẽ được gửi đến vị trí mặc định (thường là tệp nohup.out trong thư mục hiện tại).
'&': Biểu tượng này cho phép lệnh chạy trong nền. Khi bạn thoát khỏi thiết bị đầu cuối hoặc đóng phiên, lệnh sẽ vẫn tiếp tục chạy. Nếu lệnh của bạn không cần chạy trong nền, bạn có thể bỏ qua biểu tượng này. Nhưng biểu tượng này là cần thiết nếu bạn muốn đảm bảo rằng lệnh tiếp tục chạy sau khi người dùng thoát khỏi thiết bị đầu cuối.
4. Ví dụ
Giả sử chúng ta có một tập lệnh Python được gọi là 'my_script.py' và chúng ta muốn nó chạy trong nền và chuyển hướng tất cả đầu ra đến một tệp có tên là 'output.log'. Chúng ta có thể chạy nó bằng lệnh sau:
''Ầm ầm
nohuppythonmy_script.py>output.log&
```
Lệnh này chạy tập lệnh trong nền và ghi đầu ra vào tệp output.log. Bây giờ chúng ta đã đóng terminal hoặc session, script sẽ tiếp tục chạy trong nền. Chúng ta có thể xem các tệp output.log để xem đầu ra khi cần. Điều quan trọng cần lưu ý là khi có ngoại lệ hoặc lỗi trong chương trình, thông tin này cũng được ghi vào tệp output.log. Do đó, nhìn vào tệp này có thể giúp chúng tôi hiểu trạng thái đang chạy của chương trình và các sự cố mà nó có thể gặp phải.
5. Tóm tắt
Chạy các chương trình nền bằng Python bằng lệnh nohup là một kỹ thuật rất hữu ích giúp chúng tôi quản lý các tập lệnh hoặc chương trình chạy dài và đảm bảo rằng chúng tiếp tục chạy ngay cả sau khi người dùng thoát khỏi thiết bị đầu cuối hoặc phiên. Bằng cách sử dụng lệnh nohup và các kỹ thuật chuyển hướng một cách khôn ngoan, chúng ta có thể dễ dàng quản lý chương trình Python của mình và nhận thông tin về trạng thái đang chạy của nó.