FreeBSD를 사용하는 컴퓨터에서 부팅 시 다음 명령을 실행해야 합니다.
cd /home/portal
mv portal.sqlite corrupt_portal.sqlite
이것은 분명히 데몬이나 서비스가 아니며 시작할 때마다 일회성 명령만 수행됩니다.
.sh 파일을 /usr/local/etc/rc.d/에 넣으려고 했지만 #!/bin/bash
아무것도 하지 않았습니다. 또한 " touch testfile
두 버전을 수동으로 실행하면 제대로 작동합니다"라고 간단히 작성해 보았습니다.
내가 여기서 무엇을 놓치고 있는 걸까요?
답변1
이것리모콘(8)스크립트는 자동 부팅 프로세스를 실행하는 역할을 하며 디렉토리에 대한 간단한 템플릿은 매뉴얼의 예제 섹션에 나와 있습니다 /etc/rc.d/
. 읽다rc.subr(8)시작 스크립트 작성에 대한 추가 지침을 제공하는 매뉴얼 페이지입니다.
/etc/rc.local
그러나 자동 부팅 프로세스의 마지막 단계 중 하나는 이름이 지정된 스크립트 파일(있는 경우)을 읽는 것입니다. 이 파일에는 특별한 형식이나 키워드 또는 실행 비트 세트가 필요하지 않습니다.
rc(8)
매뉴얼 페이지 에서 :
일반적으로 이제 rc.local 대신 /usr/local/etc/rc.d/ 메커니즘이 사용되지만 rc.local을 사용하려는 경우 여전히 지원됩니다.
답변2
가장 쉬운 방법은 해당 명령을 에 넣는 것입니다 crontab
.
일반적으로 별표로 채워지는 처음 5개 필드 대신 특수 마커를 넣을 수 있습니다.@reboot
@reboot root:wheel /path/to/the/command [args ...]
이 명령은 시스템이 다시 시작될 때마다 실행됩니다.