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
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
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
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?
🌐
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.
🌐
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…
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?

🌐
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.
🌐
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
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...
🌐
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 ...
🌐
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.
🌐
GitLab
forum.gitlab.com › gitlab ci/cd
Windows gitlab runner stop execute job - GitLab CI/CD - GitLab Forum
February 21, 2022 - *windows gitlab runner configured with shell. stuck on jobs. * i am using kvm/qemu installed windows 10, and installed gitlab-runner on guest vm. all of configuration is looks fine. but when runs pipline, runner stuck on execute pipline after init git operation. not progess job anymore and finally got a timeout error. concurrent = 1 check_interval = 0 [session_server] session_timeout = 1800 [[runners]] name = “dev-win” url = “https://gitlab.com” token = “…” executor = “shell” s...