2011-10-30 2 views
5

모니터 할 Monit을 얻으려는 간단한 스크립트가 있습니다.Monit이 프로세스를 시작하지 못했습니다.

start program = "/home/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby /home/user/simple_script_daemon.rb stop" 
: 만 그렇게 공간을 앞 부분을 읽을 것 시도하게 마찬가지로 이전

[PDT Oct 30 02:47:17] info  : 'simple_script' start: su 
[PDT Oct 30 02:47:17] error : Error: Could not execute su 

: 나는 믿고 start program = "su - myuser -c '/home/user/myscript.rb start' "이 작동하지만, 그것이 말하는 로그 파일을보고해야합니다 some digging around 후 나는이 작은 덩어리를 발견 첫 번째 예처럼 실패하지만 여전히 것 같습니다하지 않습니다

[PDT Oct 30 03:09:49] info  : 'simple_script' start: /home/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby 

는 공간 만 앞 부분을 실행하기에 ...

결과 .

이 내 전체 문장입니다 :

당신은 내가 당신에게서 듣고 싶어요에 갈 수있는 어떤 아이디어를 가지고있는 경우에
check process simple_script 
    with pidfile /home/user/simple_script.rb.pid 
    start program = "su - user -c '/home/user/simple_script_daemon.rb start' " 
    stop program = "su - user -c '/home/user/simple_script_daemon.rb stop' " 
    group simple_script 

! monit doc에 명시된 바와 같이

check process simple_script 
    with pidfile /home/user/simple_script.rb.pid 
    start program = "/home/user/simple_script_daemon.rb start" as uid user and gid user 
    stop program = "/home/user/simple_script_daemon.rb stop" as uid user and gid user 
    group simple_script 

:

답변

7

난 당신이 뭔가를 시도 할 수 같아요.

+6

안녕 브라이스, 주위 하구의 _lot_ 후 내가 발견 한 그는 않습니다 다음 '수출 -c 프로그램을 시작 = "/ 빈/bash는 rvm_path =/home/user/.rvm;. $ rvm_path/scripts/rvm; cd /home/user/crittr.me; $ rvm_path/bin/rvm rvmrc load; ./simple_script_daemon.rb start ' "도와 줘서 고마워! – fetimo

+1

당신은 자신의 질문에 답하고 대답을 받아 들인 해결책으로 표시해야합니다. –

+1

@fetimo 답변을 작성하십시오. 그것은 나를 위해 일했다! – Renan

4

당신은 su에 전체 경로를 제공해야 할 수도 있습니다, 즉 /bin/su