Active specific runner not working jobs. start,stop,status result in error. (MacOs)

I have a specific Runner registered on my home machine (mac os). It’s active but not working jobs in the pipeline. Interestingly, I ran this workflow last week and it seemed to work fine but not working now. However, I can’t promised I didn’t accidentally tweak something about the registration since then.

Notes:

  • Settings->CICD->Runners shows the runner is active. However, it did not start activated. Originally was paused upon registration. Had to run gitlab-runner verify and then it showed as active.

  • Jobs in the pipeline are stuck on pending

  • Have tried removing and reregistering multiple times

  • Trying to run gitlab-runner start/stop/status results in errors.

  • start and stop give the same error:

$ sudo gitlab-runner start
Runtime platform                                    arch=amd64 os=darwin pid=72414 revision=66039dd9 version=15.8.0
FATAL: Failed to start gitlab-runner: "launchctl" failed with stderr: /Library/LaunchDaemons/gitlab-runner.plist: No such file or directory
Load failed: 2: No such file or directory
  • status:
$ sudo gitlab-runner status
Runtime platform                                    arch=amd64 os=darwin pid=72442 revision=66039dd9 version=15.8.0
gitlab-runner: "launchctl" failed with stderr: Could not find service "gitlab-runner" in domain for system
  • Using sample yml:
stages:          # List of stages for jobs, and their order of execution
  - build
  - test
  - deploy

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  script:
    - echo "Compiling the code..."
    - echo "Compile complete."

unit-test-job:   # This job runs in the test stage.
  stage: test    # It only starts when the job in the build stage completes successfully.
  script:
    - echo "Running unit tests... This will take about 60 seconds."
    - sleep 60
    - echo "Code coverage is 90%"

lint-test-job:   # This job also runs in the test stage.
  stage: test    # It can run at the same time as unit-test-job (in parallel).
  script:
    - echo "Linting code... This will take about 10 seconds."
    - sleep 10
    - echo "No lint issues found."

deploy-job:      # This job runs in the deploy stage.
  stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.
  environment: production
  script:
    - echo "Deploying application..."
    - echo "Application successfully deployed."
  • Registration command:
sudo gitlab-runner register \
  --non-interactive \
  --executor "shell" \
  --url "https://gitlab.myorg.org/" \
  --registration-token "MY_TOKEN" \
  --description "runner-test" \
  --maintenance-note "Free-form maintainer notes about this runner" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"
  • Writes toml:
concurrent = 1
check_interval = 0
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "docker-runner"
  url = "https://gitlab.myorg.org/"
  id = 6871
  token = "REDACTED"
  token_obtained_at = 2023-01-24T17:05:30Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "shell"
  [runners.custom_build_dir]
  [runners.cache]
    MaxUploadedArchiveSize = 0
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]

Hopefully I’m doing something wrong here and there’s an easy fix.

Edit: Solution found
Because I installed gitlab-runner via brew, I had to start the service using sudo brew service start. And then I could check that status using sudo gitlab-runner status --service homebrew.mxcl.gitlab-runner. After this, pipeline works fine.