diff --git a/packages/appserver-db/PKGBUILD b/packages/appserver-db/PKGBUILD index 4d5eef73fa8..43c88b6eecc 100644 --- a/packages/appserver-db/PKGBUILD +++ b/packages/appserver-db/PKGBUILD @@ -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" } diff --git a/packages/appserver-db/carbonio-appserver-db.service b/packages/appserver-db/carbonio-appserver-db.service new file mode 100644 index 00000000000..cc4b6303c72 --- /dev/null +++ b/packages/appserver-db/carbonio-appserver-db.service @@ -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 \ No newline at end of file diff --git a/packages/appserver-service/PKGBUILD b/packages/appserver-service/PKGBUILD index a2fe2e55cf9..376aa3b11fa 100644 --- a/packages/appserver-service/PKGBUILD +++ b/packages/appserver-service/PKGBUILD @@ -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() { diff --git a/packages/appserver-service/carbonio-appserver.service b/packages/appserver-service/carbonio-appserver.service new file mode 100644 index 00000000000..61b4d0811d8 --- /dev/null +++ b/packages/appserver-service/carbonio-appserver.service @@ -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 diff --git a/packages/common-appserver-conf/PKGBUILD b/packages/common-appserver-conf/PKGBUILD index 68db8aac8ef..36d2e00477b 100644 --- a/packages/common-appserver-conf/PKGBUILD +++ b/packages/common-appserver-conf/PKGBUILD @@ -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() { diff --git a/packages/common-appserver-conf/carbonio-milter.service b/packages/common-appserver-conf/carbonio-milter.service new file mode 100644 index 00000000000..55679762aa1 --- /dev/null +++ b/packages/common-appserver-conf/carbonio-milter.service @@ -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 diff --git a/packages/directory-server/PKGBUILD b/packages/directory-server/PKGBUILD index 6ce604fae47..00d22ec3b23 100644 --- a/packages/directory-server/PKGBUILD +++ b/packages/directory-server/PKGBUILD @@ -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() { diff --git a/packages/directory-server/carbonio-directory-server.target b/packages/directory-server/carbonio-directory-server.target new file mode 100644 index 00000000000..9e3b579bbeb --- /dev/null +++ b/packages/directory-server/carbonio-directory-server.target @@ -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