Rc.local에 실행 명령은 안되나요?

안녕하세요, 리눅스는 왕 초보라서요.

몇일 전에 뭐 좀 해볼려구 클라우드 서버를 구매했습니다.
서버 생성 시 Ubuntu서버를 생성했습니다. (여기저기 구글링해서 세팅은 시켜놨습니다. ㅡㅡ;)

xxx(사용자계정 ^^)라는 계정을 sudoers에 추가시키고 작업하고 있습니다.

문제는 제가 node.js로 프로그래밍한 것(mongodb를 주기적으로 스캐닝해서 push해주는 기능)이 있는데,
해당 프로그램을 부팅 시도 실행시키기 위해서 forever모듈을 사용하고 있습니다.

프롬프트상에서

[code:3v7v1n60]forever start /mypath/server.js [/code:3v7v1n60]
이와 같이 실행시키는데, 위에 말씀드린대로 혹시 모를 부팅 시에 자동으로 저게 실행이 되어야 되거든요.

찾아보니 /etc/rc.local에 넣어주면 된다기에

[code:3v7v1n60]/usr/bin/forever start /mypath/server.js [/code:3v7v1n60]

이렇게 해봤는데, (forever list)로 확인하면 안올라 오네요.

제가 잘못 이해했는지요.? 말도 안되는 이야기라도 초보니 조언이나 해결 방안 좀 부탁드리겠습니다.
감사합니다.

그렇게 하시는 게 맞는데 실행이 안되었다면 시스템 로그 뒤져서 원인을 찾아봐야 할 것 같습니다.

/var/log/syslog에서 오류 내용 찾아 보세요.

실행시에 사용자 권한이나 실행 디렉토리 설정 같은게 안 맞아서 그럴수도 있습니다.

먼저 가장 의심되는 부분은 forever 프로그램이 PATH에 잡혀있는가 하는 것입니다.
/etc/rc.local에서 실행되는 프로그램들은 root권한으로 실행됩니다.
또한, 그 프로그램은 /usr/local/bin에 존재할텐데… root로 로그인해서 forever 프로그램이 그냥 실행되는지 테스트 해볼 필요가 있습니다.

sudo su -
echo $PATH
forever

만약 여기서 파일을 찾을 수 없다고 에러가 난다면, 경로의 문제로,
/etc/rc.local에 forever라고 적지 말고, /usr/local/bin/forever라고 전체 경로를 적어주시던가,
/etc/environment에 적혀있는 PATH에 /usr/local/bin을 추가해 주시면 됩니다.

그 문제가 아닐 경우에는, forever -o /var/log/forever-stdout.log -e /var/log/forever-stderr.log 스크립트
이런식으로, 로그를 남기게 하시고, 로그파일을 확인해 보세요.

[quote="마잇":3qaypp6p]그렇게 하시는 게 맞는데 실행이 안되었다면 시스템 로그 뒤져서 원인을 찾아봐야 할 것 같습니다.

/var/log/syslog에서 오류 내용 찾아 보세요.

실행시에 사용자 권한이나 실행 디렉토리 설정 같은게 안 맞아서 그럴수도 있습니다.[/quote:3qaypp6p]

감사합니다. syslog에 검색해 봤는데, forever에 대한 내용이 없네요. ㅠㅠ

[quote="protochaos":3qsj4dfx]먼저 가장 의심되는 부분은 forever 프로그램이 PATH에 잡혀있는가 하는 것입니다.
/etc/rc.local에서 실행되는 프로그램들은 root권한으로 실행됩니다.
또한, 그 프로그램은 /usr/local/bin에 존재할텐데… root로 로그인해서 forever 프로그램이 그냥 실행되는지 테스트 해볼 필요가 있습니다.

sudo su -
echo $PATH
forever

만약 여기서 파일을 찾을 수 없다고 에러가 난다면, 경로의 문제로,
/etc/rc.local에 forever라고 적지 말고, /usr/local/bin/forever라고 전체 경로를 적어주시던가,
/etc/environment에 적혀있는 PATH에 /usr/local/bin을 추가해 주시면 됩니다.

그 문제가 아닐 경우에는, forever -o /var/log/forever-stdout.log -e /var/log/forever-stderr.log 스크립트
이런식으로, 로그를 남기게 하시고, 로그파일을 확인해 보세요.[/quote:3qsj4dfx]

답변 감사드립니다.
말씀하신대로 $PATH 출력결과
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 이 나옵니다.
forever도 프롬프트 상에서 잘 되구요.
설치 시 -g 옵션을 줘서 그런지 /usr/local/에 설치가 안되어 있고 forever는 /usr/bin/ 밑에 있는 걸로 확인됩니다.
위에 분 말대로 syslog에도 남아있지않고, 말씀하신 로그방법을 한번 더 해 봐야 겠습니다.
오늘도 이거 가지고 씨름해야 겠네요. ^^;

감사합니다.

앗… 밖에 함박눈이 내리네요.

구글링해서 찾아보니 http://askubuntu.com/questions/243044/w … l-executed 에 나와있네요.

저거 대로 해서 처음엔 보여지더라구요. 근데, 또 안돼서… ㅠㅠ

rc.local에 제가 주석을 달고 써놨거든요.

execute node

/usr/bin/forever start /mypath/server.js

저 주석라인을 없애니 또 되네요? 주석…#…맞는데???
암튼 해결은 되었지만, 엄청 찝찝합니다. ㅠㅠ

감사합니다.