1. Issue
서버에 서비스를 생성하고, 특정 쉘스크립트를 실행시킬 때 발생
2. Problem
아래 코드는 생성한 서비스이고, ExecStart를 사용해 쉘 스크립트를 실행시키려고 할 때 발생하였다.
[Unit]
Description=SCM-Manager Server
After=syslog.target network.target
[Service]
Type=simple
User=scm
Group=scm
WorkingDirectory=/home/was/scm/dev-scm-server
ExecStart=/home/was/scm/dev-scm-server/bin/scm-server
Restart=on-failure
# Exit code 143 means that the program received a SIGTERM signal to instruct it to exit,
# but it did not handle the signal properly.
# we suppress that warning for now
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
2-1) 오류 확인
# 시스템 로그
journalctl -xe
3. Solution
해당 로그에는 SELinux에서 엑세스하지 못하기 때문에 발생한 오류라며 접근을 허용하기 위해서 정책 추가하라고 나왔지만 해당 스크립트의 SELinux 컨텍스트를 먼저 확인한다.
object_r:bin_t 또는 bin_exec_t 와 같은 컨텍스트가 설정되어 있어야 한다.
# 컨텍스트 확인
ls -Z /home/was/scm/dev-scm-server/bin/scm-server
난 아래와 같이 user_home_t로 등록되어 있었다.
3-1) SELinux 컨텍스트 변경
# 컨텍스트 변경
sudo chcon -t bin_t /home/was/scm/dev-scm-server/bin/scm-server
# 영구적으로 변경
sudo restorecon -v /home/was/scm/dev-scm-server/bin/scm-server
변경 후 재조회
해당 설정을 변경했으면 다시 만들었던 서비스를 실행하면 된다.
반응형
'오류 해결' 카테고리의 다른 글
[K8s / 오류] x509 certificate signed by unknown authority (0) | 2024.12.13 |
---|---|
[Jenkins / 오류] Failed to start Jenkins Continuous Integration Server 설정 파일 (0) | 2024.08.13 |
[Jenkins / 오류] Pipeline에서shell script 실행 방법(nohup) (1) | 2024.04.01 |
[Tomcat / 오류] Kill failed: $CATALINA_PID not set (0) | 2024.01.18 |
[Jenkins / 오류] nohup 백그라운드 프로세스 실행 오류 (0) | 2024.01.17 |