Lỗi start-limit-hit trong linux

I am trying to run a Node.js API as a service, but am running into problems.

When running systemctl status servicename.service I get the following error:

servicename.service - [Service description]  
Loaded: leaded [/etc/systemd/system/servicename.service; enabled; vendor preset: enabled]  
Active: failed [Result: start-limit-hit] since [timestamp] ago  
Process: 1142 ExecStart=/usr/bin/node /home/pi/Documents/server.js [code=exited, status=0/SUCCESS]  
Main PID: 1142 [code=exited, status=0/SUCCESS]  
[timestamp] hostname systemd[1]: servicename.service: Service hold-off time over, scheduling restart.  
[timestamp] hostname systemd[1]: Stopped [Service description]
[timestamp] hostname systemd[1]: servicename.service: Start request repeated too quickly.  
[timestamp] hostname systemd[1]: Failed to start [Service description]
[timestamp] hostname systemd[1]: servicename.service: Unit entered failed state.  
[timestamp] hostname systemd[1]: servicename.service: Failed with result 'start-limit-hit'.

What is this error and how can I resolve this issue?

I would like to run the script with sudo since part of the script needs admin permissions.

I am trying to start gunicorn on bootup of my machine but when I check the status of my service after enabling and starting it I get an error starting start-limit-hit. I have tried using sudo systemctl restart ssh as suggested in How to resolve service start limit hit. This is my .service file:

[Unit]
Requires=myproject.socket
After = network.target

[Service]
Restart=always
User=ubuntu
WorkingDirectory=/home/ubuntu/myproject
ExecStart=/home/ubuntu/myproject/venv36/bin/gunicorn -w 1 -b 0.0.0.0:8080 wsgi:$
Type=simple


[Install]
WantedBy=multi-user.target

My .socket file:

[Socket]
ListenStream=/run/myproject/socket

[Install]
WantedBy=sockets.target

asked Apr 23, 2019 at 8:59

5

You have Restart=always and a Type of simple, so in case the program specified in ExecStart is a daemon that forks another process and exits, your app will be considered not-active -> it will restart until it hits the limit.

You should either pass a parameter for the program to remain in the foreground, or change the Type to forking. After that run systemctl reset-failed myproject and start it.

Jeff Schaller

64.3k33 gold badges104 silver badges235 bronze badges

answered Nov 14, 2019 at 10:04

FloriOnFloriOn

2951 silver badge13 bronze badges

1

Trong thế giới ngày nay, kết nối internet cho phép sử dụng và truyền thông tin qua mạng. Làm việc trong một vị trí tập trung vào mạng [network] đòi hỏi người quản trị hệ thống phải nhận thức được các vấn đề có thể xảy ra và có khả năng khắc phục sự cố.

Vì vậy, trong một môi trường đòi hỏi giao tiếp hiệu quả cho các hoạt động hàng ngày, bạn phải biết các công cụ mạng Linux/Unix và cách sử dụng chúng để giải quyết các vấn đề kết nối internet. Bài viết này sẽ giúp bạn xác định các sự cố mạng có thể xảy ra trong Linux và hướng dẫn cách khắc phục chúng.

Khắc phục sự cố kết nối đến và đi

Trước khi bắt đầu giải quyết vấn đề, điều quan trọng là phải tìm hiểu xem vấn đề là ở phía máy khách [client side] hay phía máy chủ [server side]. Phần này bao gồm các cách để xác định các vấn đề kết nối đi và đến trên Linux.

Xác định và khắc phục sự cố kết nối đi

Đôi khi bạn không thể truy cập vào một trang web nào đó trên internet. Vấn đề có thể là với kết nối nằm ngoài mạng cục bộ của bạn hoặc name resolution [chuyển đổi tên thành địa chỉ IP theo yêu cầu của máy hoặc mạng].

Để xác định lý do chính xác, bạn có thể bắt đầu bằng việc gửi yêu cầu ICMP echo bằng lệnh ping và đợi phản hồi.

ping 

Trong trường hợp không có kết nối mạng hoặc mất 100% gói [packet]*, một khả năng khác có thể là sự vắng mặt của giao diện mạng [network interface]. Chạy lệnh ip để kiểm tra trạng thái của tất cả các giao diện có sẵn trên hệ thống của bạn:

ip add show

*IP Packet: Một gói mạng hoặc gói IP có thể được coi là một đơn vị dữ liệu [khoảng 1 KBS đến 1,5 KBS] truyền từ điểm gốc đến địa chỉ đích [từ người gửi đến người nhận] trong mạng internet.

Đầu ra hiển thị trạng thái của từng giao diện mạng là UP hoặc DOWN. Giao diện có trạng thái DOWN trong đầu ra sẽ không có bất kỳ địa chỉ IP nào được chỉ định, đây có thể là lý do có thể gây ra sự cố kết nối.

Bạn có thể giải quyết sự cố bằng cách thay đổi trạng thái internet bằng cách chạy:

sudo ifup 

Nếu giao diện ở trạng thái UP nhưng máy chủ vẫn không thể truy cập được, hãy sử dụng lệnh ping để tìm địa chỉ IP của bộ định tuyến và kiểm tra xem nó có thể truy cập được hay không:

ping 

Bài Viết Liên Quan

Chủ Đề