![SuSE가 시작된 후 스크립트를 어떻게 실행합니까?](https://linux55.com/image/23986/SuSE%EA%B0%80%20%EC%8B%9C%EC%9E%91%EB%90%9C%20%ED%9B%84%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%8B%A4%ED%96%89%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
나는 내 서버가 (다시)시작이 완료되었음을 (으르렁거림을 통해) 나에게 알리기를 원합니다. 으르렁거림을 위한 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 스크립트를 호출해야 하는 시작 사례가 표시됩니다.
필요하지 않은 것 같아서 헤더에 많은 선택적 매개변수를 삭제했습니다.
중요한
최소한 사례 진술에 대한 프레임워크를 사용하는 것이 중요합니다(참조:초기화 스크립트 작업), 최소한 시작 사례를 구현합니다. 초기의 경우 스크립트가 호출되는 위치입니다.
부팅이 끝날 때 호출되는 작은 스크립트의 예를 여기에서 찾을 수 있습니다.내 주요 내용 보기. 기본 중지에 잘못된 실행 수준을 설정했지만 종료 중에 스크립트가 계속 호출됩니다. 어쨌든 "stop" 케이스의 코드는 "start" 케이스의 코드 대신 종료 시 실행됩니다.
스크립트를 작성한 후 복사하세요. /etc/init.d
초기화 스크립트가 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*
그러면 초기화 스크립트의 연결된 목록이 반환됩니다. 스크립트에 대한 링크는 목록 끝 부분(또는 그 근처)에 있어야 합니다.
참고: 보다 동적인 방식으로 초기화 스크립트를 작성하고 싶다면 다음 두 페이지를 읽는 것이 좋습니다.
답변3
OpenSUSE 12.2(Mantis)의 경우,스크립트"로컬 이후"가 무엇인지에 대해서는 /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>
- 두 번째로 서비스 파일을 만들 수 있습니다이 방법을 사용하세요