2019-04-30 17:05 최초 작성
아파치 시작/종료 시점에 스크립트를 실행해야할 필요성이 생겼다.
시작/종료 시 추가적인 작업이 필요했다.
그러던 중 리눅스 서비스에 추가적인 옵션 등록으로 해결 가능하다는 사실을 발견했다.
리눅스 서비스 옵션이기 때문에 해당 파일만 잘 선택한다면 아파치가 아닌 Nginx도 같은 방법으로 설정 가능하다.
참고 링크
https://unix.stackexchange.com/questions/368271/how-can-i-run-a-command-upon-a-systemd-service-unit-being-disabled
https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStopPost=
-
옵션
여러가지 옵션이 있다.
ExecStartPre, ExecStartPost
Pre가 붙은건 start 하기 전에, Post가 붙은건 start 한 후에 실행된다.
필요에 따라 적절하게 사용하면 될 듯.Pre, Post 없이 단순하게 ExecStart 옵션도 있는데, 해당 설정 파일을 열어보면 미리 사용되고 있다.
이 부분을 조작하면 시작시 제어가 가능해보인다. -
설정 파일에 추가
위에서 말하는 옵션은/etc/systemd/system/multi-user.target.wants/httpd.service
이 경로에 넣으면 된다.
이 파일은 심볼릭 링크인데,sed -i 's,\(\[Install\].*\),ExecStartPost=/bin/bash /var/www/html/bash/httpd_start.sh\nExecStopPost=/bin/bash /var/www/html/bash/httpd_stop.sh\n\n\1,g' /etc/systemd/system/multi-user.target.wants/httpd.service
같은 명령을 통해서 자동으로 추가하려고 할 경우 심볼릭 링크가 깨지더라.
-
원본 설정 파일에 추가
심볼릭 링크의 원본은 이 파일이다. 이 파일을 건드리면 심볼릭 링크 깨지는 일 없이 반영 가능하다./usr/lib/systemd/system/httpd.service
하지만 어지간하면 직접 건드는 일은 없었으면 좋겠다. 불안... -
설정 반영
설정 파일에 옵션 추가 후systemctl daemon-reload
명령을 통해 설정을 적용해주면 된다.
'개발 > Backend' 카테고리의 다른 글
[Spring Boot] 작업 비동기로 실행하기 (2) | 2021.07.13 |
---|---|
[Spring Boot] html 템플릿 메일 보내기 - Thymeleaf (0) | 2021.07.13 |
Access-Control-Allow-Origin을 넣어도 POST에서 CORS 에러가 발생할때 (0) | 2020.07.09 |
Nginx + PHP 최신 버전 연동 (0) | 2019.06.21 |
Apache SSL 적용 (0) | 2019.06.21 |