C
저는 전원 이벤트를 모니터링 udev
하고 노트북 백라이트 밝기를 자동으로 조정하는 작은 유틸리티를 만들었습니다 . (저는 우분투 15.04를 사용하고 있습니다)
다음 명령을 실행했는데 시작 시 정상적으로 실행되었습니다.
$ sudo cp powermonitor /etc/init.d/powermonitor
$ sudo chmod +x /etc/init.d/powermonitor
$ sudo update-rc.d powermonitor defaults
하지만 CPU 사용량을 htop
잠시 모니터링한 결과 이제는 사라진 것을 발견했습니다. 이 프로그램은 명령줄 인수를 허용하지 않지만 Linux는 다음을 통해 프로그램을 실행하려고 시도하는 것 같습니다.
/etc/init.d/powermonitor start
프로세스가 계속 실행되도록 하려면 어떻게 해야 합니까?
편집: 명확히 하기 위해 powermonitor
스크립트가 아닌 실행 파일입니다.
답변1
의 파일은 /etc/init.d
실행 파일로 컴파일되어서는 안 됩니다. 컴파일된 실행 파일을 다른 곳에 두고 /usr/local/bin
다음을 작성할 수도 있습니다.초기화 스크립트에서는 /etc/init.d
컴파일된 프로그램을 시작하고 중지하는 방법을 알고 있습니다. 일반적으로 이는 시작하기 위해 백그라운드에서 실행한 다음 PID(또는 사용된 실행 파일 이름 killall
)를 종료하여 중지하는 것만 큼 간단합니다. init 스크립트는 , , &c init
라는 단어라는 단일 인수를 사용하여 호출됩니다 . 서비스 자체를 실행하는 방법을 아는 것은 스크립트의 책임입니다.start
stop
restart
빠른 소개를 원하시면 다음을 시도해 보세요.여기. /etc/init.d
상황에 맞게 변경할 수 있는 샘플 뼈대 스크립트가 디렉터리에 있을 수 있습니다 .
그런데, 어떤 배포판을 실행하고 있나요? 이제 많은 최신 배포판은 기본적으로 IMO 단위 파일 대신 선언적 단위 파일을 사용하여 실행됩니다 systemd
. sysvinit
systemd는 sysvinit 호환 모드를 제공하므로 직접 실행할 수 있습니다. 그렇다면 스크립트보다는 유닛 파일을 작성하는 것을 추천합니다.