17

I'm writing a bash-script but I often face this issue. When I try to start or stop a service I often get:

start request repeated too quickly 

How can I solve this problem? It's for example when I try to restart docker or openshift-origin master.

sudo service origin-master restart

● origin-master.service - Origin Master Service
   Loaded: loaded (/usr/lib/systemd/system/origin-master.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Wed 2016-02-17 08:22:11 UTC; 44s ago
     Docs: https://github.com/openshift/origin
  Process: 2296 ExecStart=/usr/bin/openshift start master --config=${CONFIG_FILE} $OPTIONS (code=exited, status=255)
 Main PID: 2296 (code=exited, status=255)

Feb 17 08:22:10 ip-172-xx-xx-xx.eu-central-1.compute.internal systemd[1]: origin-master.service: main process exited, code=exited, status=255/n/a
Feb 17 08:22:10 ip-172-xx-xx-xx.eu-central-1.compute.internal systemd[1]: Failed to start Origin Master Service.
Feb 17 08:22:10 ip-172-xx-xx-xx.eu-central-1.compute.internal systemd[1]: Unit origin-master.service entered failed state.
Feb 17 08:22:10 ip-172-xx-xx-xx.eu-central-1.compute.internal systemd[1]: origin-master.service failed.
Feb 17 08:22:11 ip-172-xx-xx-xx.eu-central-1.compute.internal systemd[1]: origin-master.service holdoff time over, scheduling restart.
Feb 17 08:22:11 ip-172-xx-xx-xx.eu-central-1.compute.internal systemd[1]: start request repeated too quickly for origin-master.service
Feb 17 08:22:11 ip-172-xx-xx-xx.eu-central-1.compute.internal systemd[1]: Failed to start Origin Master Service.
Feb 17 08:22:11 ip-172-xx-xx-xx.eu-central-1.compute.internal systemd[1]: Unit origin-master.service entered failed state.
Feb 17 08:22:11 ip-172-xx-xx-xx.eu-central-1.compute.internal systemd[1]: origin-master.service failed.

My script is just doing:

if [ $1 = "-u" ]
then
 sudo service origin-master restart
fi

A manual restart is possible before I've executed the script. But after it it remains giving the error

ntninja
  • 1,204
  • 16
  • 20
lova
  • 679
  • 4
  • 8
  • 19

7 Answers7

24

This is a "feature" of systemctl. There is a parameter in the file that limits the restart frequency in seconds. Lower this while testing.

Edit the file /etc/systemd/system/multi-user.target.wants/<your service here>

my example:

Restart=on-failure
StartLimitBurst=2
# Restart, but not more than once every 10 minutes
#StartLimitInterval=600
# Restart, but not more than once every 30s (for testing purposes)
StartLimitInterval=30
jshep321
  • 553
  • 5
  • 8
  • [Isn't `StartLimitIntervalSec`](https://www.freedesktop.org/software/systemd/man/systemd.unit.html#StartLimitIntervalSec=interval)? With a Sec at the end? Also then a `systemctl daemon-reload`. – Pablo Bianchi Jan 28 '19 at 05:59
  • Don't have a `StartLimitInterval` parameter in the file but have a `restart=always`. Doesn't that mean it should "always" restart when I request it to do so? Do I just add the `StartLimitInterval` parameter to the file? – velkoon Feb 23 '19 at 08:49
  • On the issue of `StartLimitInterval` vs. `StartLimitIntervalSec`, see https://unix.stackexchange.com/a/464098/102206 — the latter was introduced with v230. – Gwyneth Llewelyn Jan 14 '23 at 18:49
  • These changes don't fix the problem for me. I noticed that this happens when I tried to make a new server from an image. The new server was created from an image of the working server, but when I try to start the service the very first time, this error occurs. Changing the file as indicated above does not resolve the issue. I do a systemctl daemon-reload but same result. – Papyrus Jul 05 '23 at 04:40
11

I suggest you familiarize yourself with systemd. That's what you're using under the hood when you run service. As @chepner says, the service is failing (as you can see from the second line of the log), and it's being restarted too quickly, triggering the error.

Try running journalctl -u origin-master.service to figure out why the error is happening.

Also, systemd cat origin-master.service will show you the Service Unit file that describes your service - there might be errors.

asymmetric
  • 3,800
  • 3
  • 34
  • 52
3

I have faced same issue and solved this problem like that:

if /var/log/mysql folder not exists:

sudo mkdir /var/log/mysql

and then give permission this folder:

sudo chown -R mysql:mysql /var/log/mysql

sudo systemctl stop mysql

sudo systemctl start mysql
Ismayil Ibrahimov
  • 440
  • 1
  • 7
  • 11
2

I had this problem on Ubuntu 20.4. And by adding execute permission to the ExecStart file the problem was solved.

sudo chmod +x /path/to/execfile
Sven Eberth
  • 3,057
  • 12
  • 24
  • 29
1

In my case , is my /etc/docker/daemon.json file format error, when i make this true, run systemctl start docker the server start success.

lyj
  • 442
  • 2
  • 5
0

in my case, there was a typing mistake in this file -> /etc/systemd/system/multi-user.target.wants/<your service here> so after tweaking necessary parameters, if you are still facing the same error, don't forget to check the file

-1

Please try running the command : td-agent --dry-run This will give you the root cause.

Jignesh Rawal
  • 521
  • 6
  • 17