시작 스크립트에는 루트 권한이 필요합니다

시작 스크립트에는 루트 권한이 필요합니다

시작 시 실행해야 하는 스크립트가 있습니다. init.d에 넣었습니다. 루트 권한으로 스크립트의 명령 중 하나를 실행해야 합니다. 어떻게 해야 하나요?

편집 1:

참고로 ClearCase/ClearQuest RHEL 6.7 서버입니다. 라이센스 관리자보다 먼저 CC를 시작하는 데 문제가 있는 것 같습니다. 따라서 다음 명령을 실행하고 싶습니다(모든 명령에는 루트 권한이 필요함).

 /path/to/atria_start stop  # stop CC
 /path/to/start_lmgrd start # start license manager (flexlm)
 /path/to/atria_start start # restart CC

이 중 아무 일도 일어나지 않았습니다. /etc/init.d의 간단한 스크립트 "cc_startup.sh"에 넣었습니다.

답변1

init.d에 있으면 루트로 실행되어야 합니다. 부팅 시 실행하려면 예를 들어 OS 배포판/버전에 따라 입력 /etc/rc.d/rc2.d하세요 /etc/rc2.d. 예를 들어, 다음 형식으로 링크를 생성해야 합니다.

S##Name -> ../init.d/scripthere.sh여기서 ##은 시작 시 실행하려는 위치와 동일합니다. SSH 앞에 나타나기를 원하십니까? 아파치 이후? 데이터베이스 이전에? 기타 등등 이를 알면 어떤 숫자를 입력해야 하는지 알 수 있습니다.

이를 달성하려면 ln -s ../init.d/scripthere.sh S##name올바른 rc 디렉터리에서 실행해야 합니다.

답변2

RH 및 파생 배포판에서 고유한 init 스크립트를 생성하는 경우 실제로 기본 chkconfig 시작 구성 유틸리티를 사용하도록 작성해야 합니다(거의 모든 RHL 관리자가 알고 사용하는 것이기 때문입니다).

다음은 기본 사항을 잘 다루고 있습니다. 새로운 chkconfig init 스크립트 생성

답변3

Bash에서는 테스트했지만 다른 쉘에서는 테스트하지 않았습니다. 당신의 컴퓨터에서만 작동하기를 원한다면. 다음을 사용할 수 있습니다.

echo $MY_SUDO_PASSWORD | sudo -S <command>

물론 $MY_SUDO_PASSWORD가 sudo 비밀번호와 일치하면 비밀번호를 묻지 않고 sudo에서 실행됩니다.

관련 정보