여기에는 Linux에 배포된 애플리케이션이 있고 Linux가 시작될 때 애플리케이션이 자동으로 시작되기를 원합니다. 'sudo ./start'
응용 프로그램 시작과 같은 명령을 사용하고 있습니다 . 어떻게 해야 하나요?
운영 체제: CentOS 6
답변1
나는 그것을 추천하지 않습니다 /etc/rc.local
. 이것은 옛날 유닉스 시절의 유물입니다. 일부 Linux는 더 이상 지원되지 않습니다 rc.local
.
그러나 애플리케이션/서비스가 올바르게 시작될 수는 있지만 프로세스가 정상적으로 종료되지는 않습니다.
시스템 자체의 초기화 스크립트 메커니즘(체계,갑자기 나타나다,...). 다음과 같은 rc 스크립트를 작성하겠습니다(시스템에 뼈대/템플릿이 있을 수 있음 /etc/init.d/skeleton
).
#!/bin/bash
. /etc/init.d/functions
start() {
echo -n "Starting <servicename>: "
#/path/to/the/executable/of/your/application
}
stop() {
echo -n "Shutting down <servicename>: "
#command_to_gracefully_end_the_application
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
#command_to_report_the_status
;;
restart)
stop
start
;;
*)
echo "Usage: <servicename> {start|stop|restart}"
exit 1
;;
esac
exit $?
스크립트를 /etc/init.d/에 넣고 실행 가능하게 만든 다음 시스템에 추가합니다.런레벨3, 4, 5:
chkconfig --level 345 <servicename> on
수동으로 시작하고 중지할 수도 있습니다.
service <servicename> start
service <servicename> stop
답변2
/etc/rc.local
대부분의 Linux는 시스템 시작 시 한 번 실행됩니다. 편집기로 이 파일을 열고 명령을 추가하여 애플리케이션을 시작하세요.
sudo
스크립트는 루트로 실행되므로 명령 앞에 접두사를 붙일 필요가 없습니다.
백그라운드에서 명령을 실행하려면 명령 끝에 "&"(앰퍼샌드)를 추가해야 합니다. 그러면 응용 프로그램이 한 번에 명령을 완료할 수 없는 경우 시스템이 시작되는 것을 방지할 수 있습니다.
myscript
다음에 위치한 파일을 실행하는 예/usr/local/bin/
# place near the end of /etc/rc.local
/usr/local/bin/myscript &
답변3
cron을 사용하면 저에게 효과적이었습니다.
# enter crontab edit
crontab -e
# place this inside the cron file you opened with the previous command
@reboot /path/to/your/script.sh