@@ -72,8 +72,8 @@ For Linux:
72
72
73
73
* If your package manager provides the buildbot worker software, that is
74
74
probably the best way to install it; it may create the buildbot user for
75
- you, in which case you can skip that step. Otherwise, do ``pip install
76
- buildbot-worker ``.
75
+ you, in which case you can skip the next step. Otherwise, do ``pip install
76
+ buildbot-worker `` or `` pip3 install buildbot-worker `` .
77
77
* Create a ``buildbot `` user (using, eg: ``useradd ``) if necessary.
78
78
* Log in as the buildbot user.
79
79
@@ -125,7 +125,70 @@ machine reboots:
125
125
126
126
For Linux:
127
127
128
- * Add the following line to ``/etc/crontab ``::
128
+ * For systemd based distributions, you can create a systemd unit file in order
129
+ to manage the service. Create the unit file named ``buildbot-worker.service ``
130
+ under ``/home/buildbot/.config/systemd/user/ `` and change the paths according to where the
131
+ buildbot-worker binary resides. You can verify its location by running
132
+ ``which buildbot-worker ``.
133
+ If you installed the buildbot-worker through
134
+ your package manager it would be::
135
+
136
+ [Unit]
137
+ Description=Buildbot Worker
138
+ Wants=network-online.target
139
+ After=network-online.target local-fs.target
140
+
141
+ [Service]
142
+ Type=forking
143
+ PIDFile=/home/buildbot/buildarea/twistd.pid
144
+ WorkingDirectory=/home/buildbot/buildarea
145
+ ExecStart=/usr/bin/buildbot-worker start
146
+ ExecReload=/usr/bin/buildbot-worker restart
147
+ ExecStop=/usr/bin/buildbot-worker stop
148
+ Restart=always
149
+ User=buildbot
150
+
151
+ [Install]
152
+ WantedBy=multi-user.target
153
+
154
+
155
+ If you installed the buildbot-worker through pip, the systemd unit
156
+ file should look like this::
157
+
158
+ [Unit]
159
+ Description=Buildbot Worker
160
+ Wants=network-online.target
161
+ After=network-online.target local-fs.target
162
+
163
+ [Service]
164
+ Type=forking
165
+ PIDFile=/home/buildbot/buildarea/twistd.pid
166
+ WorkingDirectory=/home/buildbot/buildarea
167
+ ExecStart=/usr/local/bin/buildbot-worker start
168
+ ExecReload=/usr/local/bin/buildbot-worker restart
169
+ ExecStop=/usr/local/bin/buildbot-worker stop
170
+ Restart=always
171
+ User=buildbot
172
+
173
+ [Install]
174
+ WantedBy=multi-user.target
175
+
176
+
177
+ Then enable lingering for the buildbot user via the
178
+ ``loginctl enable-linger buildbot `` command and you can start
179
+ the service through a login shell of the buildbot user
180
+ via the ``systemctl --user enable --now buildbot-worker.service ``
181
+ command.
182
+
183
+ Note that using a systemd unit file, might produce some selinux warnings on systems
184
+ where the enforcing mode is enabled, usually related to the twistd.pid file.
185
+ If the service fails to start, you should check the output of
186
+ ``systemctl status buildbot-worker.service `` as well as the
187
+ ``/var/log/audit/audit.log `` file (e.g. through
188
+ ``sealert -a /var/log/audit/audit.log ``) for potential issues and remedies.
189
+
190
+
191
+ * Alternatively you can create a cronjob. Add the following line to ``/etc/crontab ``::
129
192
130
193
@reboot buildbot-worker restart /path/to/buildarea
131
194
0 commit comments