This is not that easy because of all the logic that we have in the init script.
One part is about starting/stopping htcacheclean if mod_cache_disk is enabled. Maybe instead of doing this check at apache2 startup, this could be split into a separate service and a2enmod could active the htcacheclean service when mod_cache_disk is enabled. Another part is that apache2 is not very good at telling its status via an exit code. For example, when doing reload/stop/graceful-stop, the controlling apache2 process will only send a signal and not wait for the result of the operation. I don't know enough about systemd to tell if this can be easily done via unit files. Also, some configuration is done via /etc/apache2/envvars and /etc/default/apache2 . This would need to be taken care of, too.