chkconfig를 사용하여 .sh를 구성한 후 systemctl은 myservice 단위를 찾을 수 없음을 나타냅니다.

chkconfig를 사용하여 .sh를 구성한 후 systemctl은 myservice 단위를 찾을 수 없음을 나타냅니다.

설정을 테스트하기 위해 몇 가지 실험을 하고 있습니다. systemd를 사용하여 자동 시작되도록 설정하는 bash 스크립트를 개발했습니다.

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

JBoss를 시작하기 위해 기본 스크립트를 사용하는 것을 고려할 수도 있습니다 systemd.여기예를 찾을 수 있습니다. 설치를 반영하도록 경로와 변수를 자유롭게 변경하세요.

[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

당신의 생각에 감사드립니다.

관련 정보