어디서부터 시작해야 할지 모르겠습니다. 나는 데몬에 대해 읽었지만 개념을 이해하지 못했습니다.
자세한 내용은 :
- 나는 절대 멈추지 않는 크롤러와 인터넷의 RSS를 통해 크롤러를 작성해 왔습니다.
- 크롤러는 Java로 작성되었으므로 현재는 jar입니다.
- 저는 Ubuntu 11.04가 설치된 컴퓨터의 관리자입니다.
- 기계가 충돌할 가능성이 있으므로 기계를 시작할 때마다 크롤러가 실행되기를 바랍니다.
- 그리고 로그아웃 후에도 계속 실행되고 싶습니다. 이것이 가능한지는 확실하지 않지만 대부분의 경우 로그아웃되어 있으며 여전히 크롤링을 원합니다.
어떤 아이디어가 있나요? 누군가 나에게 올바른 방향을 알려줄 수 있습니까?
가장 간단한 해결책을 찾고 있습니다.
답변1
SysVInit을 사용하여 이를 수행하는 쉬운 방법은 다음과 같습니다. 지침:
애플리케이션의 시작 및 중지 스크립트를 만듭니다. 우리의 예에서는 다음과 같은 디렉토리에 넣으십시오.
- 시작 스크립트:
/usr/local/bin/myapp-start.sh
- 중지 스크립트:
/usr/local/bin/myapp-stop.sh
각각은 앱을 실행/중지하는 지침을 제공합니다. 예를 들어
myapp-start.sh
내용은 다음과 같이 간단할 수 있습니다.#!/bin/bash java -jar myapp.jar
중지 스크립트의 경우 다음과 같을 수 있습니다.
#!/bin/bash # Grabs and kill a process from the pidlist that has the word myapp pid=`ps aux | grep myapp | awk '{print $2}'` kill -9 $pid
- 시작 스크립트:
다음 스크립트(
myscript
)를 작성하여 올려놓으십시오/etc/init.d
./etc/init.d/myscript
콘텐츠:#!/bin/bash # MyApp # # description: bla bla case $1 in start) /bin/bash /usr/local/bin/myapp-start.sh ;; stop) /bin/bash /usr/local/bin/myapp-stop.sh ;; restart) /bin/bash /usr/local/bin/myapp-stop.sh /bin/bash /usr/local/bin/myapp-start.sh ;; esac exit 0
SysV를 사용하여 시스템을 시작하는 스크립트를 넣습니다. 다음 명령을 실행하십시오(루트로):
update-rc.d myscript defaults
추신: 저는 Upstart가 훌륭하고 훌륭하다는 것을 알고 있지만 이전 SysV init 시스템을 선호합니다.
답변2
예! 것이 가능하다. :)갑자기 나타나다서비스가 계속 실행되는지 확인하는 방법입니다. 5개의 패키지가 있으며 모두 기본적으로 설치됩니다.
- init 데몬 및 initctl 유틸리티 시작
- upstart-logd는 logd 서비스에 대한 logd 데몬 및 작업 정의 파일을 제공합니다.
- upstart-compat-sysv는 rc 작업에 대한 작업 정의 파일과 SysVinit과의 호환성을 제공하는 재부팅, 실행 수준, 종료 및 telinit 도구를 제공합니다.
- 시작 작업은 시스템 시작 작업에 대한 작업 정의 파일을 제공합니다.
- system-services는 tty 서비스에 대한 작업 정의 파일을 제공합니다.
학습은 매우 즐겁고 그만한 가치가 있습니다. Upstart에는 다음과 같은 웹사이트가 있습니다.http://upstart.ubuntu.com/
답변3
3가지 빠른 제안...
만들기에스
/etc/rc3.d
해당하는 (다중 사용자 콘솔 모드) 의 tart 스크립트케이시스템 전원이 꺼지거나(runevel 0) 재부팅(runlevel 6)될 때 제어된 방식으로 Java 프로그램을 종료하고/etc/rc.0
잘못된 스크립트를 실행합니다./etc/rc6.d
런레벨 소개.런레벨 2(rc2.d)에서 Java 앱을 시작할 수 있지만 크롤러로서 TCP/IP가 필요합니다. 따라서 네트워킹 서비스가 런레벨 2에서 미리 사용 가능하거나 시작되었는지 확인하십시오. 네트워킹은 확실히 런레벨 3에서 향상되었습니다.
/etc/init.d
실제 시작/종료 스크립트가 모두 포함되어 있습니다./etc/rcN.d
디렉토리에는 런레벨 N별로 각각 시작하거나 종료하기 위한 S 또는 K 접두어가 붙은 링크가 포함되어 있습니다.에서 실행되는 프로세스는
crond
로그아웃 후에도 지속되어야 합니다. 어쩌면 crontab에 추가할 수도 있습니다.에서 실행되는 프로세스
nohup
도 지속되어야 합니다. 보다nohup: 로그아웃 후에도 명령 실행.$ nohup java -jar myapp.jar &
기본적으로 의
myapp.jar
표준 출력은 이름이 지정된 파일로 이동하거나./nohup.out
전자$HOME/nohup.out
가 쓸 수 없는 경우입니다.
답변4
Linux용 Java 버전 확인 기능을 갖춘 간단한 시작 스크립트인증 에이전트 그리고 윈도우즈인증 에이전트 .bat