CentOS 7将多个进程初始化脚本转换为systemd服务

我有一个初始化脚本,如下所示

#!/bin/bash # description: connect start | stop | restart | install # processname: tomcat # chkconfig: 234 99 01 JAVA_HOME=/ export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH CATALINA_HOME=/ ulimit -v unlimited -m.. LOG_COPY_FOLDER=$(date +"%Y-%m-%d_%H%M") case $1 in start) JAVA_OPTS='-Xms160g -Xmx160g -XX:+ResetSignal_MaskAtLaunch -Xloggc:/tom....' export JAVA_OPTS echo "Using JAVA_OPTS: $JAVA_OPTS" find $CATALINA_HOME/logs_prev/* -type d -ctime +180 | xargs rm -rf mv $CATALINA_HOME/logs $CATALINA_HOME/logs_prev/$LOG_COPY_FOLDER mkdir $CATALINA_HOME/logs nohup sh $CATALINA_HOME/bin/startup.sh less $CATALINA_HOME/logs/catalina.out ;; stop) sh $CATALINA_HOME/bin/shutdown.sh ;; install) MySQLConfirmation() { while : do read -p 'Have you run MySQL commands? (y/n): ' answer case "${answer}" in y|Y|yes|Yes) exit 0 ;; n|N|no|No) exit 1 ;; esac done } if $( MySQLConfirmation ); then JAVA_OPTS='-Xms160g -Xmx160g -XX:+ResetSignalMaskAtLaunch -Xloggc:/tom... export JAVA_OPTS echo "Using JAVA_OPTS: $JAVA_OPTS" find $CATALINA_HOME/logs_prev/* -type d -ctime +30 | xargs rm -rf mv $CATALINA_HOME/logs $CATALINA_HOME/logs_prev/$LOG_COPY_FOLDER **rm -R $CATALINA_HOME/website.com/ROOT** mkdir $CATALINA_HOME/logs **mv -f /root/website.war $CATALINA_HOME/websitcom/ROOT.war** nohup sh $CATALINA_HOME/bin/startup.sh less $CATALINA_HOME/logs/catalina.out else echo "See you when you're done with MySQL updates!" fi ;; esac exit 0 

正如你看到我已经开始停止重新启动和安装过程。 和安装过程是需要删除和mkdir命令,我不知道如何在systemd过程上实现,因为我看不到一种方式来添加一个进程能够像'systemctl qinstall服务'运行有没有办法添加Execinstall和systemd的ExecinstallPre参数? 谢谢

systemd不支持像install这样的自定义操作名称,它着重于进程pipe理。