로그인 시가 아닌 부팅시 스크립트 실행


11

머신을 부팅 할 때마다 또는 로그인하기 전에 특정 스크립트를 실행하려면 어떻게해야합니까 (수퍼 유저가 아님). 부팅시 마지막으로 실행할 수 있습니다. 사용자가 로그인하지 않아도 스크립트가 작동하기를 원합니다.


1
@bruce 이것 좀보세요-> askubuntu.com/questions/9382/…
hhlp

1
upstart 또는 cron 또는 다른 많은 방법을 사용할 수 있습니다. 알아야 할 한 가지 중요한 사항 실행 속도가 빠르다는 것 입니다. 예를 들어 마운트하려면 특정 파일 시스템이 필요하고, X가 실행 중이어야하고, DBus가 필요하고, 네트워킹이 필요합니까?
JanC

@ JanC : 그렇습니다. 실제로 요청한 모든 것 (X 제외)이 필요하기 때문에 마지막으로 실행하고 싶습니다. 더 일찍 실행할 이유가 없습니다.
Malabarba

@hhlp : 감사합니다. 그러나 해당 방법을 사용하면 스크립트가 얼마나 빨리 실행됩니까? 위에서 언급했듯이 (로그인 전) 가장 마지막 항목 중 하나 인 것이 가장 좋습니다.
Malabarba

글쎄, 로그인은 터미널 서버에 로그인하거나 네트워크 공유에 $ HOME이없는 한 네트워킹이 필요하지 않습니다 ... ;-)
JanC

답변:


8

을 사용하는 것이 좋습니다 cron. 의 특별한 시간 값은 @reboot사용자로 재부팅 할 때마다 작업을 생성합니다. 예를 들어 다음을 실행 crontab -e하고 사용하십시오.

@reboot /home/yourself/bin/some_script_to_run

특수 시간 형식에 대한 자세한 내용은 man 5 crontab


고마워, 충분히 쉬워 보인다. 이것은 어떤 사용자가 cronjob 권한을 작성 하느냐에 의존하지 않습니까? 로그인에 관계없이 부팅이 끝날 때 실행됩니까?
Malabarba

cronjob을 만든 사람에 따라 달라집니다. 해당 사용자로 실행됩니다. 그러나 로그인에 의존하지는 않습니다.
Kees Cook

이것은 cron 데몬이 시작될 때 스크립트를 실행하므로 필요한 다른 시스템이 아직 준비되지 않았을 수 있습니다.
PhoneixS

4

한 가지 가능성은 Upstart를 사용하는 것입니다. 이를 통해 "파일 시스템이 마운트되고 네트워크 인터페이스 eth0가 실행 중일 때"와 같은 종속성 측면에서 스크립트를 실행할시기를 지정할 수 있습니다 . 다음을 포함하는 파일 /etc/init/bruce_script.conf을 작성하십시오 (파일을 루트로 작성해야 함).

description "Bruce's boot script"
start on filesystem and net-device-up IFACE=eth0
task
exec su -c '/home/bruce/script' bruce

상담 호 신출내기 특히 설명서에서 자세한 내용을 init(5)매뉴얼 페이지를 해당 구성 파일에 넣을 수있는 목록은.


사용할 수있는 가동 이벤트 목록이 있습니까?
sunside

@Markus : 내가 아는 것은 아닙니다. 표준 이벤트는 섹션 7에 매뉴얼 페이지가 있으므로에 dpkg -L upstart |grep /man7/있는 기존 스크립트에서 트리거로 사용 및 트리거 된 이벤트를 볼 수 있습니다 /etc/init.
Gilles 'SO- 악마 그만해
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.