使用 chkconfig 配置 .sh 后,systemctl 表示未找到单位 myservice

使用 chkconfig 配置 .sh 后,systemctl 表示未找到单位 myservice

我正在做一些测试设置的实验...我开发了一个 bash 脚本来使用 systemd 将其设置为自动启动。

我安装了 chkconfig 并配置了我的脚本,如下所示:

使用根:

cd /mypath
cp myscript.sh /etc/init.d/
cd /etc/init.d

chkconfig --add myscript.sh
chkconfig myscript.sh on

systemctl start myscript

我收到:

Unit myscript.service could not be found.

答案1

也许您可以考虑使用本机systemd脚本来启动 JBoss。这里你可以找到一个例子。请随意更改路径和变量以反映您的安装。

[Unit]
Description=Jboss Application Server
After=syslog.target network.target ypbind.service

[Service]
Type=simple
TimeoutSec=0
User=jboss
EnvironmentFile=/etc/sysconfig/jboss-standalone.conf
StandardOutput=journal
ExecStart=/bin/java \
    -D"[Standalone]" \
    -server \
    $GC_LOG_ROTATE \
    -Djboss.server.log.dir=${JBOSS_LOG_DIR} \
    $JAVA_OPTS \
    -Djboss.modules.system.pkgs=${JBOSS_MODULES_SYSTEM_PKGS} \
    -Dorg.jboss.boot.log.file=${JBOSS_LOG_DIR}/server.log \
    -Dlogging.configuration=${JBOSS_LOG_CONF} \
    -jar ${JBOSS_HOME}/jboss-modules.jar \
    $MODULE_OPTS \
    -mp ${JBOSS_MODULEPATH} \
    org.jboss.as.standalone \
    -Djboss.home.dir=${JBOSS_HOME} \
    -Djboss.server.base.dir=${JBOSS_BASE_DIR} \
    $SERVER_OPTS

[Install]
WantedBy=multi-user.target

作为起点,您可以使用上述脚本的 JBoss 配置:

JBOSS_BASE_DIR=/opt/jboss/standalone
JBOSS_LOG_DIR=/opt/jboss/standalone/log
JBOSS_LOG_CONF=file:/opt/jboss/standalone/configuration/logging.properties
JBOSS_MODULEPATH=/opt/jboss/modules
JBOSS_MODULES_SYSTEM_PKGS=org.jboss.byteman
JAVA_OPTS= \
    -Xms1024m -Xmx1024m -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512m \
    -Djava.net.preferIPv4Stack=true \
    -Djava.awt.headless=true
SERVER_OPTS=-c standalone.xml

#MODULE_OPTS="-secmgr"
#DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"
#GC_LOG_ROTATE=-verbose:gc \
    -Xloggc:/opt/jboss/standalone/log/gc.log \
    -XX:+PrintGCDetails \
    -XX:+PrintGCDateStamps \
    -XX:+UseGCLogFileRotation \
    -XX:NumberOfGCLogFiles=5 \
    -XX:GCLogFileSize=3M \
    -XX:-TraceClassUnloading

答案2

经过一些测试后,我发现对 /etc/init.d/ 进行任何更改后,我需要运行systemctl daemon-reload以应用更改,之后我就可以使用systemctl start myscript.services

谢谢大家的想法。

相关内容