[linux] 리눅스 우분투에서 시작시 자동으로 프로그램을 실행합니다.

우분투 리눅스를 시작할 때마다 실행되는 프로그램이 필요합니다. 시작 프로그램 목록에 추가해야합니다. 단 하나의 문제 : 터미널을 통해해야합니다.



답변

sudo mv /filename /etc/init.d/
sudo chmod +x /etc/init.d/filename
sudo update-rc.d filename defaults

스크립트가 부팅시 시작됩니다. 이 방법은 하드 링크와 심볼릭 링크 ( ln) 에서도 작동합니다 .

편집하다

부팅 프로세스의이 시점에서 PATH는 아직 설정되지 않았으므로 전체에서 절대 경로를 사용하는 것이 중요합니다. 그러나 Steve HHH의 의견에서 지적했듯이 /etc/init.d/filenameupdate-rc.d 명령 의 전체 파일 경로 ( )를 명시 적으로 선언하는 것은 대부분의 Linux 버전에서 유효하지 않습니다. 당 갱신-rc.d에 대한 맨 페이지 , 두 번째 매개 변수에있는 스크립트입니다/etc/init.d/* . 이를 반영하기 위해 위의 코드를 업데이트했습니다.

다른 편집

또한 Charles Charlest의 의견에서 지적한 것처럼 /filenameinit 스타일 스크립트 여야합니다. 좋은 템플릿도 제공했다 – https://github.com/fhd/init-script-template .

가능한 링크 썩음을 피하기 위해 다른 기사에 대한 또 다른 링크 (GitHub가 사망하면 슬프지만)- http://www.linux.com/learn/tutorials/442412-managing-linux-daemons-with-init-scripts

yet 또 다른 편집

의견에서 지적한 것처럼 (Russell Yan의) 이것은 update-rc.d의 기본 모드에서만 작동합니다.

update-rc.d의 매뉴얼에 따르면, “레거시 모드를 사용하는 머신에는 파일이 있습니다”라는 두 가지 모드에서 실행될 수 있습니다. /etc/init.d/.legacy-bootordering이 경우 명령 행 인수를 통해 시퀀스 및 런레벨 구성을 전달해야합니다.

위 예제에서 설정 한 동등한 인수는

sudo update-rc.d filename start 20 2 3 4 5 . stop 20 0 1 6 .


답변