
내 서버가 (으르렁거림을 통해) (재)부팅이 완료되었음을 나에게 알리기를 원합니다. 으르렁거림을 보내는 PHP 파일이 준비되어 있지만 어떤 파일에 줄을 추가해야 할지 모르겠습니다.
SuSE 부팅이 완료된 후에만 코드가 실행되도록 코드를 추가하려면 어떤 파일이 필요합니까?
답변1
(open)SUSE는 /etc/init.d/after.local
이러한 목적으로 사용됩니다. 해당 파일에 실행해야 하는 명령을 추가하기만 하면 됩니다. 이는 SystemV init에서는 잘 작동하지만 systemd에서는 AFAIK를 다르게 해결해야 합니다.
답변2
Suse Linux Enterprise 11 SP2(및 openSUSE ?)의 최신 구문
가장 좋은 방법은 PHP 스크립트를 호출하는 쉘 스크립트를 만드는 것입니다. 이 쉘 스크립트의 헤더에는 다음 주석이 있어야 합니다.
#!/bin/sh
### BEGIN INIT INFO
# Provides: nothing
# Required-Start: $all
# Default-Start: 3 5
# Default-Stop: 4
# Short-Description: single_line_description
# Description: multiline_description
### END INIT INFO
에서 일반적인 템플릿(많은 설명 주석 포함)을 찾을 수 있습니다 /etc/init.d/skeleton
. 이 템플릿에는 PHP 스크립트를 연결하는 데 필요한 코드가 포함되어 있습니다. PHP 스크립트를 호출해야 하는 시작 사례가 표시됩니다.
헤더에 있는 여러 선택적 매개변수는 필요할 것 같지 않아 삭제했습니다.
중요한
최소한 Case 문에서 뼈대를 사용하는 것이 중요합니다(참조초기화 스크립트 작업), 최소한 시작 케이스를 구현해야 합니다. 시작 사례에서는 스크립트를 호출할 위치입니다.
부팅이 끝날 때 호출되는 작은 스크립트 예제를 여기에서 찾을 수 있습니다.내 요점을 참조하십시오. Default-Stop에 유효하지 않은 실행 수준을 설정했지만 종료 중에 스크립트가 계속 호출됩니다. 어쨌든 종료하는 동안 "시작" 케이스의 코드가 아닌 "중지" 케이스의 코드가 실행됩니다.
스크립트를 작성한 후에는 이를 복사하여 /etc/init.d
init 스크립트가 boot-notification이라고 가정하고 루트로 다음을 수행합니다.
chown root:root boot-notification
chmod 0750 boot-notification
mv boot-notification /etc/init.d/
그런 다음 init 시스템에 스크립트를 "등록"해야 합니다. 명령을 다시 루트로 사용 insserv
하거나 YaST를 사용할 수 있습니다.
insserv boot-notification
그런 다음 각 초기화 수준을 조사하여 스크립트가 마지막으로 실행되는 스크립트 중 하나인지 추가로 확인할 수 있습니다. 런레벨 3만 선택한 경우 다음을 수행할 수 있습니다.
ls -l /etc/init.d/rc3.d/S*
그러면 초기화 스크립트에 대한 링크 목록이 반환됩니다. 스크립트에 대한 링크는 목록의 끝(또는 근처)에 있어야 합니다.
참고: init 스크립트를 작성하는 보다 동적인 방법을 시험해 보고 싶다면 다음 2페이지를 읽어 보는 것이 좋습니다.
답변3
OpenSUSE 12.2(Mantis)의 경우스크립트"after local"은 /etc/init.d/after-local
다음과 같이 systemctl을 통해 활성화해야 할 수도 있습니다.
에게~할 수 있게 하다/etc/init.d/after-local,
systemctl enable after-local.service
에게상태 확인/etc/init.d/after-local,
systemctl status after-local.service
답변4
나는 그것을 수행하는 두 가지 방법이 있음을 발견했습니다.
- 가장 먼저 터미널을 열고 다음을 입력하는 것입니다.
sudo crontab -e
그런 다음 입력
@reboot sudo <command_to_execute_at_startup>
- 두 번째로 서비스 파일을 만들 수 있습니다이 방법을 사용하여