부팅 후 명령을 어떻게 실행할 수 있습니까? 할 때마다 간단한 쉘 명령을 실행하고

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



답변

배포판에 따라 다릅니다.

데비안에서 파생 된 배포판에 있다면 /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경우을 (를) 실행하기 위해 서비스를 시작하는 방법을 배워야 하지만 이는 간단한 질문으로 협상 한 것 이상일 수 있습니다.


답변

시스템 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) 데몬이 시작 되는 시간 입니다. 특히 일부 시스템 데몬 또는 기타 기능이 시작되기 전에있을 수 있습니다. 시스템의 부팅 순서 순서 때문입니다.

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


답변

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

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