Tomcat catalina.sh가 올바르게 시작되지만 tomcat.service를 시작하면 권한이 반환됩니다.

Tomcat catalina.sh가 올바르게 시작되지만 tomcat.service를 시작하면 권한이 반환됩니다.

배경

RHEL 8에서는 Apache Tomcat v8.5.78을 /opt/tomcat/. 디렉토리의 사용자 및 그룹은 tomcat:tomcat디렉토리의 내용과 마찬가지로 로 설정됩니다.

톰캣을 시작할 수 있어요

$ sudo -u tomcat /opt/tomcat/bin/catalina.sh start

이제 다음과 같은 파일을 전달하려고 합니다 systemctl.tomcat.service

[Unit]
Description=Tomcat Server
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment='JAVA_OPTS=-Djava.awt.headless=true'
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment='CATALINA_OPTS=-Xms512M -Xmx2048M'
ExecStart=/opt/tomcat/bin/catalina.sh start
ExecStop=/opt/tomcat/bin/catalina.sh stop

[Install]
WantedBy=multi-user.target

서비스 사용자 및 그룹도 tomcat&로 설정되어 있습니다.tomcat

질문

systemctl을 통해 Tomcat을 시작할 때:

$ sudo systemctl start tomcat.service

"tomcat.service 작업 실패..."라는 메시지가 나타납니다. systemctl status tomcat.service프로그램

● tomcat.service - Tomcat Server
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2022-06-22 12:11:59 AEST; 1min 29s ago
  Process: 1641092 ExecStart=/opt/tomcat/bin/catalina.sh start (code=exited, status=203/EXEC)

그리고 journalctl -xe다음을 제공합니다:

-- Unit tomcat.service has begun starting up.
Jun 22 11:41:47 my.server.local systemd[1638136]: tomcat.service: Failed to execute command: Permission denied
Jun 22 11:41:47 my.server.local systemd[1638136]: tomcat.service: Failed at step EXEC spawning /opt/tomcat/bin/catalina.sh: Permission d>-- Subject: Process /opt/tomcat/bin/catalina.sh could not be executed

systemctl서비스 파일이 수동으로 시작할 때와 동일한 사용자를 지정하면 권한 문제가 보고되는 이유는 무엇입니까?

추가 정보

톰 고양이 버전

Tomcat 버전이 필요합니다. 최신 버전으로 업그레이드할 수 없습니다.

내가 또 무엇을 시도했나요?

  1. 읽다https://unix.stackexchange.com/a/498494/45940나는 tomcat.service지시문에서 이것을 시도했지만 Type=oneshot성공하지 못했습니다.

  2. 읽다https://stackoverflow.com/a/58301082/65889tomcat.service작업 디렉토리를 다음으로 설정하려고 시도했지만 /opt/tomcat/bin성공하지 못했습니다.

답변1

.sh제 경우에는 디렉토리 의 파일 권한 이었습니다 /bin. 모두 x(실행 가능) 플래그 가 없습니다 .

관련 정보