The steps for getting the runner up and running (and surviving reboots) should be something along the lines of:

  1. Download the runner
  2. Register the runner
  3. Install the runner and service with:
gitlab-runner install
gitlab-runner start

The machine should now be ready to serve as a runner, and nothing else needs to be done to it (until you want to update the runner...).


Should register be called once or every time I reboot the system. What about install and start?

Register should be called once, this creates a config.toml file which saves the configuration of the registration across reboots. The files location changes depending on how it was registered. IE on Linux, registering a shell runner with sudo, would save the config.toml file to /etc/gitlab-runner/config.toml.

With regards to install and start, also only needs to be run once and survives across reboots. The install installs the GitLab Runner as a service, and start just runs it the first time.

To restart a runner should I do stop , uninstall and then install start run?

Just do a gitlab-runner restart.

Should I have to run it or start would have the same effect?

If you have done an install and start you have no need to use run. I believe run is only for one use (on the open terminal) for debugging jobs. start is for the service on the machine.

HTH.

Answer from Rekovni on Stack Overflow
🌐
GitLab
docs.gitlab.com › gitlab docs › install › configure gitlab runner › commands
GitLab Runner commands | GitLab Docs
Register the runner as a local service (like systemd) with SIGQUIT as the kill signal, and use gitlab-runner stop or systemctl stop gitlab-runner.service.
🌐
GitLab
docs.gitlab.com › gitlab docs › install › configure gitlab runner › troubleshooting
Troubleshooting GitLab Runner | GitLab Docs
gitlab-runner stop gitlab-runner --debug run · Debug logging can be enabled in the global section of the config.toml by setting the log_level setting to debug.
Discussions

gitlab-runner commands lifecycle for restarting runner - Stack Overflow
I'm trying to configure a runner ... https://docs.gitlab.com/runner/commands/ but It's not clear what the command lifecycle is for run/start/install/register · Should register be called once or every time I reboot the system. What about install and start? To restart a runner should I do stop , uninstall ... More on stackoverflow.com
🌐 stackoverflow.com
Stop and start runner when needed
The autoscaling configuration can do that when the idle count is set to zero.  For Windows instances, I highly recommend an AMI with Fast Launch unless you want to be waiting 6+ minutes for an instance to come up. More on reddit.com
🌐 r/gitlab
3
1
March 4, 2025
Can I stop/pause individual docker executor runners on a single machine?
Problem to solve I have a single Linux machine, where I installed gitlab-runner and configured 3 different docker executor runners. I know I can stop whole gitlab runner server to stop any activity on them. But is it also possible somehow to stop individual runner only? More on forum.gitlab.com
🌐 forum.gitlab.com
1
0
February 4, 2025
Restarted gitlab-runner, triggered job code to run
you start the app with a job.. are you sure it isn't a subprocess? try starting it and checking the process tree More on reddit.com
🌐 r/gitlab
4
2
October 13, 2023
🌐
GitLab
gitlab.com › gitlab.org › gitlab-runner › #3154
How to stop gitlab runner (#3154) · Issues · GitLab.org / gitlab-runner · GitLab
What is the most explicit way through the commandline to force stop a specific runner? I have a rogue pipeline that is sending hundreds of emails of code review comments in a merge request. The only way I can stop it is by shutting down gitlab. Is there a way to send a command that will simply cease everything the runner is doing?
🌐
E-SPIN Group
e-spincorp.com › documentation › gitlab-server-and-runner-stop-and-start-procedure
GitLab Server and Runner Stop and Start Procedure | E-SPIN Group
To stop all GitLab components on Box 1 (GitLab Server), execute the following command in the Linux command line: ... Ensure that both GitLab server and runner are properly stopped. By default, they should automatically restart upon server reboot.
🌐
GitHub
gist.github.com › Schnouki › a4864a8b7d2299ad477b599e66b24568
Start and stop gitlab-runner with systemd timers · GitHub
Start and stop gitlab-runner with systemd timers. GitHub Gist: instantly share code, notes, and snippets.
🌐
GitLab
docs.gitlab.com › gitlab docs › install › configure gitlab runner › system services
The system services of GitLab Runner | GitLab Docs
For runners that use systemd, create /etc/systemd/system/gitlab-runner.service.d/kill.conf with the following content: ... After adding these two settings to the systemd unit configuration, you can stop the runner. After the runner stops, systemd uses SIGQUIT as the kill signal to stop the process.
Find elsewhere
🌐
Reddit
reddit.com › r/gitlab › stop and start runner when needed
r/gitlab on Reddit: Stop and start runner when needed
March 4, 2025 -

Hey all,

Im part of a small dev team working on an unreal engine project. We have a build server on amazon ec2 that we'd like to start up and shut down when a pipeline starts and finishes to keep costs down. We need a persistent instance for incremental builds, as it keeps build times down for testing in quick succession.

I've tried using auto scaling with a gitlab runner 'manager' but its proved a pain for windows instances, then I was considering a warm pool with a reusable instance but again its a lot of faff.

I wish I could a gitlab runner manager that fires up the instance when needed then shuts it down when it isnt. Nice and simple right? But i am racking my brain on how to go about it.

Any solutions?

🌐
Linux Command Library
linuxcommandlibrary.com › man › gitlab-runner
gitlab-runner man | Linux Command Library
$ sudo gitlab-runner start · Stop the runner service · $ sudo gitlab-runner stop · Run in foreground (for debugging) $ gitlab-runner run · Verify runner connections · $ gitlab-runner verify · Unregister a runner · $ sudo gitlab-runner ...
🌐
GitLab
docs.gitlab.com › gitlab docs › administer › administer gitlab runner › create and manage runners
Manage runners | GitLab Docs
When you delete a project runner, it is permanently deleted from the GitLab instance and can no longer be used by projects. If you want to temporarily stop the runner from accepting jobs, you can pause the runner instead.
🌐
Creationline
gitlab-docs.creationline.com › インストール › gitlab runnerの設定 › コマンド
GitLab Runnerコマンド | GitLab
SIGQUIT を kill シグナルとして、ランナーをローカルサービス(systemd のような)として登録し、gitlab-runner stop またはsystemctl stop gitlab-runner.serviceを使います。GitLab.com の共有ランナーの設定の例を示します:
🌐
GitLab
forum.gitlab.com › gitlab ci/cd
Can I stop/pause individual docker executor runners on a single machine? - GitLab CI/CD - GitLab Forum
February 4, 2025 - Problem to solve I have a single Linux machine, where I installed gitlab-runner and configured 3 different docker executor runners. I know I can stop whole gitlab runner server to stop any activity on them. But is it als…
🌐
GitLab
gitlab.com › gitlab.org › gitlab-runner › #1316
Unregistering a runner does not stop and/or uninstall the runner (#1316) · Issues · GitLab.org / gitlab-runner · GitLab
I unregistered a couple of runners and then registered a new one. However, all three runners were still running which was causing my build queue not to work...
Top answer
1 of 10
54
  1. List runners to get their tokens and URLs:

    sudo gitlab-runner list
    
  2. Verify with delete option specifying runner's token and URL:

    sudo gitlab-runner verify --delete -t YMsSCHnjGssdmz1JRoxx -u http://git.xxxx.com/
    
2 of 10
34

Get your runner token and id

First, go to the GitLab settings page and find the token (e.g. 250cff81 in the image below) and the id (e.g. 354472 in the image below) of the GitLab runner which you wish to delete.

Use the gitlab-runner CLI to unregister the runner

If you have access to the machine which was used to register the GitLab runner, you can unregister the runner using the following command, where you replace {TOKEN} with the token of your GitLab runner (e.g. 250cff81 in the example above).

gitlab-runner unregister --url https://gitlab.org/ --token {TOKEN}

Use the GitLab API to unregister the runner

If you no longer have access to the machine which was used to register the runner, or if the runner is associated with multiple projects, you can use the following Python script. Set RUNNER_ID to the id of your runner (e.g. 354472 in the example above) and GITLAB_AUTH_TOKEN to a GitLab token which you can generate from your profile page.

import os
import requests

GITLAB_AUTH_TOKEN = ...
RUNNER_ID = ...

headers = {"PRIVATE-TOKEN": GITLAB_AUTH_TOKEN}

r = requests.get(f"https://gitlab.com/api/v4/runners/{RUNNER_ID}", headers=headers)
runner_data = r.json()

for project in runner_data.get("projects", []):
    r = requests.delete(
        f"https://gitlab.com/api/v4/projects/{project['id']}/runners/{RUNNER_ID}",
        headers=headers,
    )
    if not r.ok:
        print("Encountered an error deleting runner from project:", r.json())

r = requests.delete(f"https://gitlab.com/api/v4/runners/{RUNNER_ID}", headers=headers)
if not r.ok:
    print("Encountered an error deleting runner:", r.json())
🌐
FossKit
fosskit.com › home › gitlab runner stuck: 6 proven causes and fixes
GitLab Runner Stuck: 6 Proven Causes and Fixes
June 25, 2026 - The most common gitlab runner stuck cause is the runner service stopped on the host machine.
🌐
DevOps as Craft
virtualizare.net › devops › how-to-stop-gitlab-runner-a-step-by-step-guide.html
How to Stop GitLab Runner: A Step-by-Step Guide
September 2, 2024 - Configuration Changes: When making changes to the runner’s configuration. Stopping GitLab Runner is a crucial step in managing your CI/CD environment effectively.