[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