리눅스:daemon(자동실행): 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
(새 문서: {{리눅스}} == 개요 == 컴퓨터가 켜지면 자동 실행. <br /> = 방법 = == 기초사용법 == {| class="wikitable" !과정 !설명 !방법 |- |파일수정 |/etc/rc.loca...) |
잔글편집 요약 없음 |
||
2번째 줄: | 2번째 줄: | ||
== 개요 == | == 개요 == | ||
컴퓨터가 켜지면 자동 실행. | 컴퓨터가 켜지면 자동 실행. 데몬 혹은 부팅 시 자동실행...이라고 부르면 될까?<br /> | ||
<br /> | |||
= 방법 = | = 방법 = | ||
67번째 줄: | 66번째 줄: | ||
|/etc/rc.local 파일에 우측과 같이 기입한다. | |/etc/rc.local 파일에 우측과 같이 기입한다. | ||
|python /파일경로.py & | |python /파일경로.py & | ||
|} | |||
= 우분투 = | |||
{| class="wikitable" | |||
!과정 | |||
!설명 | |||
!방법 | |||
|- | |||
|실행할 명령의 sh 파일 만들기. | |||
| | |||
* 쉘 파일을 작성한다. 우측 예시 참고. | |||
* 쉘 파일을 작성하고 난 후 해당 명령을 하나씩 실행해보자. 에러가 뜨지 않게끔 수정. | |||
* chmod +x /projects/for_format/for_systemd.sh 형태로 실행권한을 부여하는 편이 좋다. | |||
|<syntaxhighlight lang="python"> | |||
#!/bin/bash | |||
# 도커 컨테이너 시작. | |||
/usr/bin/docker start -d smwiki2405 | |||
docker exec smwiki2405 systemctl start apache2 | |||
# pywiki 실행설정. | |||
docker exec samwiki systemctl start apache2 | |||
docker exec samwiki systemctl start elasticsearch.service | |||
docker exec samwiki systemctl start mysql | |||
# sc_project 실행설정. | |||
docker exec sc_project /project/maintain/start.sh | |||
</syntaxhighlight> | |||
|- | |||
|service 파일 제작. | |||
|/etc/systemd/system/ 하위에 .service 파일을 만든다. | |||
* sudo nano /etc/systemd/system/서비스명.service적절한 조건을 넣어주고 ExecStart에서 실행할 쉘파일의 위치를 지정한다. | |||
옵션은 굉장히 다양하게 있으니 다른 문서 참고. | |||
|<syntaxhighlight lang="python"> | |||
[Unit] | |||
Description=Docker Containers | |||
Requires=docker.service # 도커 서비스가 시작된 이후에 진행. | |||
After=docker.service | |||
[Service] | |||
Restart=always | |||
ExecStart=/bin/bash -c '/projects/for_format/for_systemd.sh' | |||
ExecStop=/usr/bin/docker stop -t 2 smwiki2405 | |||
[Install] | |||
WantedBy=multi-user.target | |||
</syntaxhighlight> | |||
|- | |||
|데몬 반영. | |||
| | |||
* sudosystemctl daemon-reload | |||
* sudo systemctl enable 서비스명.service | |||
* sudo systemctl start 서비스명.service | |||
start로 확인까지 해보자. | |||
이후 재부팅 하면 실행될 것이다. | |||
| | |||
|} | |} |
2024년 5월 12일 (일) 18:09 기준 최신판
리눅스를 위한 문서틀 틀:리눅스
- 리눅스:명령어
- 리눅스:권한관련
- 리눅스:편의기능
- 리눅스 기반 OS
- 리눅스:패키지 관리
- 다양한 패키지
- 리눅스:쉘 스크립트
개요[편집 | 원본 편집]
컴퓨터가 켜지면 자동 실행. 데몬 혹은 부팅 시 자동실행...이라고 부르면 될까?
방법[편집 | 원본 편집]
기초사용법[편집 | 원본 편집]
과정 | 설명 | 방법 |
---|---|---|
파일수정 | /etc/rc.local 파일에 작성한 명령이 시작 시에 실행된다. | fi
실행할 구문을 넣는다. &을 붙여 백그라운드로.
exit 0
|
권한수정 | 실행하게 되는 파일의 실행권한을 준다.
필요에 따라 주면 된다. |
chmod 777 파일명 |
파이썬 파일 실행하기[편집 | 원본 편집]
과정 | 설명 | 방법 |
---|---|---|
환경 지정 | 해당 파일을 파이썬을 이용하여 실행하라는 의미.
.py 파일 가장 위에 우측의 코드를 기입해준다. |
#! /usr/bin/env python # 버전을 지정한다면 python3.4 형식으로.
|
데몬에 등록 | /etc/rc.local 파일에 우측과 같이 기입한다. | python /파일경로.py & |
우분투[편집 | 원본 편집]
과정 | 설명 | 방법 |
---|---|---|
실행할 명령의 sh 파일 만들기. |
|
#!/bin/bash
# 도커 컨테이너 시작.
/usr/bin/docker start -d smwiki2405
docker exec smwiki2405 systemctl start apache2
# pywiki 실행설정.
docker exec samwiki systemctl start apache2
docker exec samwiki systemctl start elasticsearch.service
docker exec samwiki systemctl start mysql
# sc_project 실행설정.
docker exec sc_project /project/maintain/start.sh
|
service 파일 제작. | /etc/systemd/system/ 하위에 .service 파일을 만든다.
옵션은 굉장히 다양하게 있으니 다른 문서 참고. |
[Unit]
Description=Docker Containers
Requires=docker.service # 도커 서비스가 시작된 이후에 진행.
After=docker.service
[Service]
Restart=always
ExecStart=/bin/bash -c '/projects/for_format/for_systemd.sh'
ExecStop=/usr/bin/docker stop -t 2 smwiki2405
[Install]
WantedBy=multi-user.target
|
데몬 반영. |
start로 확인까지 해보자. 이후 재부팅 하면 실행될 것이다. |