1
วิธีหลีกเลี่ยง / usr / bin / env ถูกทำเครื่องหมายใน systemd ล็อกเป็นไฟล์เรียกทำงาน
ฉันได้สร้างบริการ systemd เรียกใช้โปรแกรมประยุกต์คราวบนพื้นฐานของข้อมูลที่พบในบทความนี้ บทความฉบับย่อแนะนำให้หลีกเลี่ยงเชลล์สคริปต์แรปเปอร์และเรียกใช้จาวาโดยตรงด้วยสภาพแวดล้อมและบรรทัดคำสั่งที่เหมาะสม นี่คือบริการทั้งหมดของ systemd (โดยแทนที่ชื่อแอพ): [Unit] Description=MyApp Tomcat Container [Service] EnvironmentFile=/opt/myapp/environment ExecStart=/usr/bin/env ${JAVA_HOME}/bin/java $JAVA_OPTS $CATALINA_OPTS \ -classpath ${CLASSPATH} \ -Dcatalina.base=${CATALINA_BASE} \ -Dcatalina.home=${CATALINA_HOME} \ -Djava.endorsed.dirs=${JAVA_ENDORSED_DIRS} \ -Djava.io.tmpdir=${CATALINA_TMPDIR} \ -Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties \ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ org.apache.catalina.startup.Bootstrap start ExecStop=/usr/bin/env $JAVA_HOME/bin/java $JAVA_OPTS \ -classpath $CLASSPATH \ -Dcatalina.base=$CATALINA_BASE \ -Dcatalina.home=$CATALINA_HOME \ -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \ -Djava.io.tmpdir=$CATALINA_TMPDIR \ …