[DRE-commits] [gitlab] 07/09: Rewrite terrible upstream .service files:

Dmitry Smirnov onlyjob at moszumanska.debian.org
Sun Jul 17 18:26:45 UTC 2016


This is an automated email from the git hooks/post-receive script.

onlyjob pushed a commit to branch master
in repository gitlab.

commit 2e41d2b
Author: Dmitry Smirnov <onlyjob at member.fsf.org>
Date:   Sun Jul 17 18:15:13 2016

    Rewrite terrible upstream .service files:
    
     * added meta "gitlab.service" that work alike corresponding init.d script
     * new .service files with support for "reload" and propagation of "reload" from "gitlab.service"
     * non-forking PIDFILE-less implementation
    
    This commit fixes services' start-up and postinst error on first install.
---
 debian/gitlab.gitlab-mailroom.service  | 20 ++++++++++++++++++++
 debian/gitlab.gitlab-sidekiq.service   | 34 ++++++++++++++++++++++++++++++++++
 debian/gitlab.gitlab-unicorn.service   | 22 ++++++++++++++++++++++
 debian/gitlab.gitlab-workhorse.service | 26 ++++++++++++++++++++++++++
 debian/gitlab.lintian-overrides        | 13 +++++++++++--
 debian/gitlab.service                  | 13 +++++++++++++
 debian/install                         |  1 -
 debian/rake-tasks.sh                   |  8 +++-----
 8 files changed, 129 insertions(+), 8 deletions(-)

diff --git a/debian/gitlab.gitlab-mailroom.service b/debian/gitlab.gitlab-mailroom.service
new file mode 100644
index 0000000..849bc39
--- /dev/null
+++ b/debian/gitlab.gitlab-mailroom.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Gitlab mailroom Worker
+PartOf=gitlab.target
+Requires=gitlab-unicorn.service
+Wants=gitlab-unicorn.service
+After=gitlab-unicorn.service
+PartOf=gitlab.service
+ReloadPropagatedFrom=gitlab-unicorn.service
+
+[Service]
+Type=simple
+User=gitlab
+WorkingDirectory=/usr/share/gitlab
+EnvironmentFile=/etc/gitlab/gitlab-debian.conf
+SyslogIdentifier=gitlab-mailroom
+ExecStart=/usr/bin/bundle exec mail_room -q -c /etc/gitlab/mail_room.yml
+Restart=on-abnormal
+
+[Install]
+WantedBy=gitlab.target
diff --git a/debian/gitlab.gitlab-sidekiq.service b/debian/gitlab.gitlab-sidekiq.service
new file mode 100644
index 0000000..4bfbe8f
--- /dev/null
+++ b/debian/gitlab.gitlab-sidekiq.service
@@ -0,0 +1,34 @@
+[Unit]
+Description=GitLab Sidekiq Worker
+PartOf=gitlab.target
+Requires=redis-server.service
+Wants=postgresql.service
+After=redis-server.service postgresql.service
+PartOf=gitlab.service
+ReloadPropagatedFrom=gitlab.service
+
+[Service]
+Type=simple
+User=gitlab
+WorkingDirectory=/usr/share/gitlab
+EnvironmentFile=/etc/gitlab/gitlab-debian.conf
+SyslogIdentifier=gitlab-sidekiq
+ExecStart=/usr/bin/bundle exec sidekiq \
+    -q post_receive \
+    -q mailers \
+    -q archive_repo \
+    -q system_hook \
+    -q project_web_hook \
+    -q gitlab_shell \
+    -q incoming_email \
+    -q runner \
+    -q common \
+    -q default \
+    -e $RAILS_ENV
+Restart=on-abnormal
+
+## No "Type=notify" support; wait for service to initialise:
+ExecStartPost=-/bin/sh -c "for i in 4 4 4 4 4 4 4 4; do sleep $i; (ps -h -o command -p $MAINPID | grep -q -P \"sidekiq\s\d\.\d\.\d\") && exit 0; done"
+
+[Install]
+WantedBy=gitlab.target
diff --git a/debian/gitlab.gitlab-unicorn.service b/debian/gitlab.gitlab-unicorn.service
new file mode 100644
index 0000000..3349cbf
--- /dev/null
+++ b/debian/gitlab.gitlab-unicorn.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=GitLab Unicorn Server
+PartOf=gitlab.target
+Requires=redis-server.service
+Wants=postgresql.service
+After=redis-server.service postgresql.service
+PartOf=gitlab.service
+ReloadPropagatedFrom=gitlab.service
+
+[Service]
+Type=simple
+User=gitlab
+WorkingDirectory=/usr/share/gitlab
+EnvironmentFile=/etc/gitlab/gitlab-debian.conf
+EnvironmentFile=-/etc/default/gitlab
+SyslogIdentifier=gitlab-unicorn
+ExecStart=/usr/bin/bundle exec unicorn_rails -c config/unicorn.rb -E $RAILS_ENV
+ExecReload=/bin/kill -USR2 $MAINPID
+Restart=on-abnormal
+
+[Install]
+WantedBy=gitlab.target
diff --git a/debian/gitlab.gitlab-workhorse.service b/debian/gitlab.gitlab-workhorse.service
new file mode 100644
index 0000000..32827da
--- /dev/null
+++ b/debian/gitlab.gitlab-workhorse.service
@@ -0,0 +1,26 @@
+[Unit]
+Description=Gitlab Workhorse handles slow HTTP requests for Gitlab.
+PartOf=gitlab.target
+Requires=gitlab-unicorn.service
+Wants=gitlab-unicorn.service
+After=gitlab-unicorn.service
+PartOf=gitlab.service
+ReloadPropagatedFrom=gitlab-unicorn.service
+
+[Service]
+Type=simple
+User=gitlab
+WorkingDirectory=/usr/share/gitlab
+EnvironmentFile=/etc/gitlab/gitlab-debian.conf
+SyslogIdentifier=gitlab-workhorse
+ExecStart=/usr/bin/gitlab-workhorse \
+    -listenUmask 0 \
+    -listenNetwork unix \
+    -listenAddr ${gitlab_pid_path}/gitlab-workhorse.socket \
+    -authBackend http://127.0.0.1:8080 \
+    -authSocket ${gitlab_pid_path}/gitlab.socket \
+    -documentRoot ${gitlab_app_root}/public
+Restart=on-abnormal
+
+[Install]
+WantedBy=gitlab.target
diff --git a/debian/gitlab.lintian-overrides b/debian/gitlab.lintian-overrides
index 2b50e2d..1e9d99c 100644
--- a/debian/gitlab.lintian-overrides
+++ b/debian/gitlab.lintian-overrides
@@ -14,5 +14,14 @@ gitlab: package-contains-timestamped-gzip usr/share/gitlab/spec/fixtures/ci_buil
 gitlab: executable-not-elf-or-script usr/share/gitlab/bin/upgrade.rb
 gitlab: executable-not-elf-or-script usr/share/gitlab/bin/ci/upgrade.rb
 
-# gitlab.target is provided for systemd
-gitlab: systemd-no-service-for-init-script gitlab
+# False-positives: there are no init.d files for those services:
+init.d-script-not-marked-as-conffile etc/init.d/gitlab-sidekiq
+init.d-script-not-marked-as-conffile etc/init.d/gitlab-workhorse
+init.d-script-not-marked-as-conffile etc/init.d/gitlab-unicorn
+init.d-script-not-marked-as-conffile etc/init.d/gitlab-mailroom
+
+# Not needed; SysV uses one 'gitlab' init script.
+init.d-script-not-included-in-package etc/init.d/gitlab-workhorse
+init.d-script-not-included-in-package etc/init.d/gitlab-sidekiq
+init.d-script-not-included-in-package etc/init.d/gitlab-mailroom
+init.d-script-not-included-in-package etc/init.d/gitlab-unicorn
diff --git a/debian/gitlab.service b/debian/gitlab.service
new file mode 100644
index 0000000..363826b
--- /dev/null
+++ b/debian/gitlab.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=GitLab Services
+BindsTo=gitlab-unicorn.service gitlab-sidekiq.service gitlab-mailroom.service gitlab-workhorse.service
+After=gitlab-unicorn.service gitlab-sidekiq.service gitlab-mailroom.service gitlab-workhorse.service
+
+[Service]
+Type=idle
+RemainAfterExit=yes
+ExecStart=-/bin/true
+ExecReload=-/bin/true
+
+[Install]
+WantedBy=gitlab.target
diff --git a/debian/install b/debian/install
index af97cb0..272e8b2 100644
--- a/debian/install
+++ b/debian/install
@@ -5,7 +5,6 @@ debian/conf/gitlab.yml.example usr/share/doc/gitlab
 debian/conf/resque.yml etc/gitlab
 debian/conf/gitlab-debian.conf.example usr/share/doc/gitlab
 debian/conf/*.target lib/systemd/system
-debian/conf/*.service lib/systemd/system
 debian/conf/smtp_settings.rb etc/gitlab/initializers
 debian/conf/tmpfiles.d/gitlab.conf usr/lib/tmpfiles.d
 debian/adduser.sh usr/lib/gitlab/scripts
diff --git a/debian/rake-tasks.sh b/debian/rake-tasks.sh
index cbc78c6..f83bef8 100755
--- a/debian/rake-tasks.sh
+++ b/debian/rake-tasks.sh
@@ -45,12 +45,10 @@ echo "Precompiling assets..."
 su ${gitlab_user} -s /bin/sh -c 'bundle exec rake assets:precompile RAILS_ENV=production'
 
 # Start gitlab
-if [ -d "/run/systemd/system" ]; then
-  systemctl start gitlab.target
-else
-  invoke-rc.d gitlab start
-fi
+printf "Starting GitLab...\n"
+service gitlab start
 
 # Check gitlab is configured correctly
+printf "Check if Gitlab is configured correctly...\n"
 su ${gitlab_user} -s /bin/sh -c 'bundle exec rake gitlab:check RAILS_ENV=production'
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/gitlab.git



More information about the Pkg-ruby-extras-commits mailing list