Skip to content

Commit

Permalink
feat: add systemd units (#477)
Browse files Browse the repository at this point in the history
Refs: IN-557
  • Loading branch information
M0Rf30 authored Apr 9, 2024
1 parent 2dde1ad commit f210224
Show file tree
Hide file tree
Showing 8 changed files with 107 additions and 0 deletions.
4 changes: 4 additions & 0 deletions packages/appserver-db/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,8 @@ package() {
mkdir -p "${pkgdir}/opt/zextras/libexec/scripts/migrations"
rsync -a "store/db/migration/" \
"${pkgdir}/opt/zextras/libexec/scripts/migrations"

# systemd unit
install -Dm 644 packages/appserver-db/${pkgname}.service \
"${pkgdir}/lib/systemd/system/${pkgname}.service"
}
18 changes: 18 additions & 0 deletions packages/appserver-db/carbonio-appserver-db.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[Unit]
Description=Carbonio Appserver DB Daemon
After=carbonio-configd.service
Wants=carbonio-configd.service
PartOf=carbonio-appserver.target carbonio-ce.target carbonio.target

[Service]
User=zextras
EnvironmentFile=-/opt/zextras/data/systemd.env
ExecStart=/opt/zextras/common/bin/mysqld_safe \
--defaults-file=${mysql_mycnf} \
--external-locking \
--log-error=${mysql_errlogfile} \
--malloc-lib=/opt/zextras/common/lib/libjemalloc.so \
--ledir=/opt/zextras/common/sbin

[Install]
WantedBy=carbonio-appserver.target carbonio-ce.target carbonio.target
4 changes: 4 additions & 0 deletions packages/appserver-service/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ package() {
"${pkgdir}/etc/carbonio/mailbox-nslookup/service-discover/policies.json"
install -Dm 644 packages/appserver-service/carbonio-mailbox-nslookup-service-protocol.json \
"${pkgdir}/etc/carbonio/mailbox-nslookup/service-discover/service-protocol.json"

# systemd unit
install -Dm 644 packages/appserver-service/carbonio-appserver.service \
"${pkgdir}/lib/systemd/system/carbonio-appserver.service"
}

postinst() {
Expand Down
34 changes: 34 additions & 0 deletions packages/appserver-service/carbonio-appserver.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[Unit]
Description=Carbonio Appserver Daemon
After=carbonio-appserver-db.service
Wants=carbonio-appserver-db.service
PartOf=carbonio-appserver.target carbonio-ce.target carbonio.target

[Service]
User=zextras
PIDFile=/opt/zextras/log/zmmailboxd_java.pid
EnvironmentFile=-/opt/zextras/data/systemd.env
ExecStartPre=/opt/zextras/bin/zmtlsctl
ExecStart=/opt/zextras/common/bin/java \
-Dfile.encoding=UTF-8 \
$mailboxd_java_options \
-Xms${java_xms}m \
-Xmx${java_xmx}m \
-Djava.io.tmpdir=/opt/zextras/mailboxd/work \
-Djava.library.path=/opt/zextras/lib \
-Dzimbra.config=/opt/zextras/conf/localconfig.xml \
--module-path /opt/zextras/mailboxd/common/endorsed \
-Djetty.base=/opt/zextras/mailboxd \
-Djetty.home=/opt/zextras/common/jetty_home \
-DSTART=/opt/zextras/mailboxd/etc/start.config \
-jar /opt/zextras/common/jetty_home/start.jar \
--module=zimbra,server,mail,servlet,servlets,jsp,jstl,jmx,resources,websocket,ext,plus,rewrite,continuation,webapp,setuid \
jetty.home=/opt/zextras/common/jetty_home \
jetty.base=/opt/zextras/mailboxd \
/opt/zextras/mailboxd/etc/jetty.xml
RestartSec=3
Restart=on-failure
SuccessExitStatus=143

[Install]
WantedBy=carbonio-appserver.target carbonio-ce.target carbonio.target
4 changes: 4 additions & 0 deletions packages/common-appserver-conf/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,10 @@ package() {
"${pkgdir}/opt/zextras/conf/rights/rights.xml"
install -D "store/src/main/resources/conf/rights/user-rights.xml" \
"${pkgdir}/opt/zextras/conf/rights/user-rights.xml"

# systemd unit
install -Dm 644 packages/common-appserver-conf/carbonio-milter.service \
"${pkgdir}/lib/systemd/system/carbonio-milter.service"
}

postinst__apt() {
Expand Down
24 changes: 24 additions & 0 deletions packages/common-appserver-conf/carbonio-milter.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[Unit]
Description=Carbonio Milter Daemon
After=carbonio-configd.service
Wants=carbonio-configd.service
PartOf=carbonio-mta.target carbonio-ce.target carbonio.target

[Service]
User=zextras
PIDFile=/opt/zextras/log/milter.pid
EnvironmentFile=-/opt/zextras/data/systemd.env
ExecStart=/opt/zextras/common/lib/jvm/java/bin/java \
-XX:ErrorFile=/opt/zextras/log \
-client \
$java_options \
-Dzimbra.home=/opt/zextras \
-Djava.library.path=$java_library_path \
-classpath ${java_ext_dirs}:/opt/zextras/lib/jars/*:/opt/zextras/conf \
-Dlog4j.configurationFile=file:/opt/zextras/conf/milter.log4j.properties \
-Dzimbra.config=/opt/zextras/conf/localconfig.xml \
com.zimbra.cs.milter.MilterServer
Restart=on-failure

[Install]
WantedBy=carbonio-mta.target carbonio-ce.target carbonio.target
12 changes: 12 additions & 0 deletions packages/directory-server/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,18 @@ package() {
install -Ddm755 store/ldap/generated/ \
"${pkgdir}/opt/zextras/common/etc/openldap/zimbra/"
rsync -a store/ldap/generated/ "${pkgdir}/opt/zextras/common/etc/openldap/zimbra/"

# systemd units and target
mkdir -p "${pkgdir}/lib/systemd/system/${pkgname}.target.wants"
install -Dm 644 "packages/directory-server/${pkgname}.target" \
"${pkgdir}/lib/systemd/system/${pkgname}.target"

ln -sf "/lib/systemd/system/carbonio-configd.service" \
"${pkgdir}/lib/systemd/system/${pkgname}.target.wants/carbonio-configd.service"
ln -sf "/lib/systemd/system/carbonio-openldap.service" \
"${pkgdir}/lib/systemd/system/${pkgname}.target.wants/carbonio-openldap.service"
ln -sf "/lib/systemd/system/carbonio-stats.service" \
"${pkgdir}/lib/systemd/system/${pkgname}.target.wants/carbonio-stats.service"
}

postinst__apt() {
Expand Down
7 changes: 7 additions & 0 deletions packages/directory-server/carbonio-directory-server.target
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[Unit]
Description=Carbonio Directory Server
Documentation=man:systemd.special(7)
Requires=multi-user.target
After=multi-user.target
PartOf=carbonio-ce.target carbonio.target
AllowIsolate=yes

0 comments on commit f210224

Please sign in to comment.