부팅 후 명령을 어떻게 실행할 수 있습니까?


27

echo 1 > /proc/sys/kernel/sysrqsysrq 키를 활성화하기 위해 부팅 할 때마다 간단한 쉘 명령을 실행하고 싶습니다 . 부팅 할 때이 작업을 수행해야하며 스크립트를 어디에 배치해야합니까?


모든 Linux 배포판은 이미 시간을 설정합니다. 어쩌면 메인 보드의 RTC 배터리가 부족합니까?
일부 프로그래머 친구

@JoachimPileborg 실제로 내 마더 보드에는 RTC가 없습니다. :) RTC가없는 내장 시스템 보드입니다.


2
@davidgo, 나는달라고 간청한다. 인용 한 참고 문헌은 쓸모가 없습니다. crontab은 작동하지만 /etc/rc.local은 systemdArch Linux와 같은 배포판 에는 없습니다 . 그들을 참조함으로써, 우리는 야생 거위 추적으로 Demetri를 보낼 수 있습니다. 때때로 일부 업데이트를 수행해야합니다.
MariusMatutiae

답변:


37

배포판에 따라 다릅니다.

데비안에서 파생 된 배포판에 있다면 /etc/rc.local과 crontab과 같은 두 곳 이상의 적절한 장소가 있습니다. crontab을 루트로 호출 할 수 있습니다.

   crontab -e

이 줄을 삽입

   @reboot /home/my_name/bin/my_command

my_command실행 파일은 어디 입니까 ( chmod 755 my_command).

또는 이와 같은 줄을 배치 할 수 있습니다

   /home/my_name/bin/my_command

/etc/rc.local에서 마지막으로 실행됩니다. 어쨌든 pls는 귀하가 아닌 루트 환경을 사용하고 있음을 기억합니다. 또한 이러한 이유로 절대 경로를 사용하는 것이 가장 좋습니다.

당신은에있는 경우 systemd 배포판 더 이상 존재하지 않는 두 번째 (/etc/rc.local에) 동안 (아치 리눅스, 페도라 19, ...) 첫 번째 옵션 (crontab을)은 여전히 유효합니다. 이 systemctl경우을 (를) 실행하기 위해 서비스를 시작하는 방법을 배워야 하지만 이는 간단한 질문으로 협상 한 것 이상일 수 있습니다.


1
Fedora에 대해 이것을 확인할 수 있습니까? 검색 결과 rc.local이 존재하고 실행 가능하지만 기본적으로 설정되어 있지 않은 경우 여전히 실행된다고 알려줍니다. rc.local이 실행되지 않으면 문제의 파급 효과를 감지했습니다! (Fedora 18-forums.fedoraforum.org/showthread.php?t=291889에 대한 참조 만 찾을 수 있음 )
davidgo

당신이 옳습니다. Fedora 19에서는 정말로 원한다면 여전히 가지고있을 것입니다. 그러나 docs.fedoraproject.org/en-US/Fedora/16/html/Release_Notes/… 글 머리 기호 3.2.4. 또한 아치 리눅스에는 전혀 존재하지 않으므로 경고를 포함하는 것이 안전하다고 생각했습니다.
MariusMatutiae

2
어쩌면 이것은 알 수없는 별칭이지만 @boot존재하지는 않습니다. @reboot debianhelp.co.uk/crontab.htm
Zarathustra

19

시스템 cron에서 지원 하는 버전 (특히 Vixie cron)을 실행중인 경우 @rebootcron 작업에서 사용할 수 있습니다 .

이것은 지원하는 8 개의 특수 문자열 중 하나입니다.

crontab(5)맨 페이지 인용 (내 Ubuntu 12.04 시스템에서) :

처음 5 개의 필드 대신 8 개의 특수 문자열 중 하나가 나타날 수 있습니다.

string         meaning
------         -------
@reboot        Run once, at startup.
@yearly        Run once a year, "0 0 1 1 *".
@annually      (same as @yearly)
@monthly       Run once a month, "0 0 1 * *".
@weekly        Run once a week, "0 0 * * 0".
@daily         Run once a day, "0 0 * * *".
@midnight      (same as @daily)
@hourly        Run once an hour, "0 * * * *".

시작 @rebootcron (8) 데몬이 시작 되는 시간 입니다. 특히 일부 시스템 데몬 또는 기타 기능이 시작되기 전에있을 수 있습니다. 시스템의 부팅 순서 순서 때문입니다.

이것은 부팅 할 때 무언가를 실행 하는 유일한 방법과 는 거리가 멀지 대안입니다.


2
이 답변은 원래 질문 보다 1 년 이상 전에 어떻게 쓰여졌 습니까?
MariusMatutiae


이를 지정하려면 +1로 Vixie cron이 필요합니다.
Javier Arias

10

길고 오랜 시간 동안 돌아가는 거의 모든 Linux 변형은 시작시 실행되는 /etc/rc.local 파일을 갖습니다. 명령을 추가하면됩니다.

즉, 그렇게 할 필요조차 없습니다. "올바른"방법은 /etc/sysctl.conf에 kernel.sysrq = 1 행을 수정 / 추가하는 것입니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.