PC가 부팅될 때 몇 가지 간단한 작업을 수행할 수 있는 Linux 시스템용 작은 스크립트를 만들고 싶습니다. 스크립트는 Python으로 작성될 가능성이 높지만 C나 쉘을 사용할 수도 있습니다.
문제는 제가 Windows 개발자이고 온라인 튜토리얼이 수상해 보인다는 것입니다.
일부는 모든 파일 설명자를 닫고 일부는 그렇지 않으며 일부는 재부팅을 구현하고 강제 재부팅을 구현하며 일부는 그렇지 않습니다. 나중에는 표준을 위반하는 것 같습니다. 그리고 나를 혼란스럽게 만드는 전체적인 gid가 있습니다.
따라서 기본적으로 안정적인 데몬에 어떤 스크립트 라이브러리를 사용할 수 있는지, 어떤 스크립트 라이브러리가 내 컴퓨터에서 작동하는지 알 수 없으므로 올바른 유형입니다.
그러다 우연히 발견한http://manpages.ubuntu.com/manpages/hardy/man1/daemon.1.html이는 데몬을 안전하게 생성하기 위한 공식적인 프로세스인 것으로 보입니다. 하지만 다시 한번 말씀드리지만 제가 올바르게 이해했다면 기존 프로세스가 아닌 시작을 실행하는 것은 init.d의 스크립트입니다.
그런 다음 장기 실행 작업에 사용되어야 하는 "nice"가 있고 올바르게 사용하면 다른 문제가 있을 수도 있습니다.
그래서 나는 여기서 길을 잃었습니다. 누구든지 나에게 경고나 하지 말아야 할 일을 알려주거나 온라인에서 정보를 찾을 수 있는 곳을 알려줄 수 있습니까?
PS 내가 호출하려는 스크립트는 프로세스를 호출해야 합니다. 이는 각 프로세스에 대해 데몬이 분기된다는 의미입니까?
답변1
여러 가지 방법이 있습니다. cron 특수 문자열을 사용하는 것이 좋습니다 @reboot
.
$ crontab -e
@reboot /path/to/my/command.sh
답변2
시작 시 스크립트를 실행하려면 다음 위치에 스크립트 파일을 저장하세요.
/etc/rc#.d/
목차. 여기서 #은 런레벨입니다. 런레벨 0부터 6까지는 모든 시스템에서 지원됩니다. 런레벨은 다음과 같습니다:
0: Halt
1: Single User Mode
2: Basic Multi-user mode (No networking)
3: Basic text mode (multiuser)
4: Multi-user mode
5: GUI based multiuser mode
6: Reboot
이 스크립트는 첫 글자를 기준으로 자동으로 시작됩니다. 다음으로 시작하는 스크립트
S: start at system startup
K: start during system shutdown
공통 이름을 가진 스크립트가 있는 경우(예:
S<name>
K<name>
K 접두사가 붙은 스크립트는 S 접두사가 붙은 스크립트보다 먼저 실행됩니다.
답변3
Debian 기반 배포판의 경우:
/etc/rc.local
거기에 스크립트 이름을 입력하고 전체 경로를 잊지 마세요.
답변4
시작 시 일부 작업만 수행해야 하는 경우 가장 좋은 방법은 자체 init.d 스크립트를 추가하는 것입니다. 일부 크론(예: fcron)을 사용하면 시작 시 작업을 실행할 수도 있습니다.
Python으로 작성했는지 여부는 중요하지 않습니다. ELF이거나 #!
첫 번째 줄에 hashbang()이 있는 한 동일하게 처리되고 실행됩니다.