CentOS 6 64비트에서 루트가 아닌 사용자로 부팅할 때 Linux 프로그램을 자동으로 실행합니다.

CentOS 6 64비트에서 루트가 아닌 사용자로 부팅할 때 Linux 프로그램을 자동으로 실행합니다.

특정 사용자가 "루트가 아닌" 사용자가 실행해야 하는 소프트웨어가 있으므로 해당 소프트웨어의 홈 디렉터리는 입니다 /home/non-root/.이 프로그램은 루트를 통해 실행되어서는 안 되며, mysql이 실행되기 시작한 후에만 실행될 수 있다는 점을 강조하고 싶습니다.

다음 명령을 통해 실행해야 하는 소프트웨어가 있습니다 ./athena-start start. 저는 유닉스 시스템에 익숙하지 않고 튜토리얼을 찾기 위해 인터넷 검색을 시도했지만 루트가 아닌 사용자를 통해 Centos에서 자동으로 실행하는 방법에 대한 가이드를 찾지 못했습니다.여기, 그러나 Fedora에서만 작동하는 것 같습니다.

누구든지 나를 도와줄 수 있나요?

답변1

이를 달성하는 방법에는 여러 가지가 있습니다. crontab 및 기타 다양한 스크립트를 사용하는 초기화 스크립트입니다. 내 의견으로는 가장 간단한 방법은 명령을 @reboot실행해야 하는 athena-start start사용자의 crontab에 레이블을 사용하는 것 입니다.

@reboot태그는 컴퓨터가 시작된 후에 명령을 한 번만 실행합니다. crontab -e -u <yourusername>선택한 사용자의 crontab에 다음을 배치 하는 데 사용됩니다 . crontab에 넣어야 할 내용은 다음과 같습니다.

@reboot while [ "x`ps -ef|awk '$8 ~ /[:print:]*mysqld[:mysqld:]*/ { print $2 }'|wc -l`" == "x0" ]; do sleep 10 ; done && cd /your/directory && ./your_command

crontab에 끔찍한 한 줄만 작성하는 대신 이것을 스크립트에 작성하여 어딘가에 두는 것이 좋습니다. 이 모든 것의 기본 아이디어는 10초마다 프로세스 테이블을 확인하고 일치하는 항목이 발견되면 다음과 같습니다. mysqld 프로세스(또는 이와 매우 유사한 것)가 있고 루프를 종료하고 실행하려는 중요한 명령이 있는 디렉터리로 변경한 다음 마지막으로 해당 명령을 실행합니다.

또 다른 옵션은 MySQL 데몬 다음에 시작하는 init 스크립트를 작성하는 것입니다. 그러나 이 예제에서는 # chkconfigMySQL init 스크립트로 시작하는 줄의 내용이 필요합니다.

관련 정보