ServerECHOTcp자동실행 문의
글쓴이: christ17 / 작성시간: 월, 2015/07/27 - 1:30오전
1.
자바로 ServerECHOTcp.java 소스를 컴파일 하여 실행 시켜봤습니다. (C로도 해볼 예정입니다)
라즈베리파이를 재부팅 했을 때, ServerECHOTcp가 자동실행 되도록 하려면 어떻게 해야할까요?
확인은 eZTerm이라는 프로그램으로 메시지를 보낼 것입니다.
ServerECHOTcp소스입니다
import java.net.*; import java.io.*; public class ServerECHOTcp { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(1470); } catch (IOException e) { System.err.println("Could not listen on port: 1470."); System.exit(1); } Socket clientSocket = null; System.out.println ("Waiting for connection....."); try { clientSocket = serverSocket.accept(); } catch (IOException e) { System.err.println("Accept failed."); System.exit(1); } System.out.println ("Connection successful"); System.out.println ("Waiting for input....."); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader( clientSocket.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println ("Server: " + inputLine); out.println(inputLine); if (inputLine.equals("Bye.")) break; } out.close(); in.close(); clientSocket.close(); serverSocket.close(); } }
2.
ServerECHOTcp.java 프로그램을 만들었습니다
컴파일은
javac ServerECHOTcp.java 명령어로
.class 파일을 만들어줍니다
실행은
java ServerECHOTcp 입니다.
소스 위치 경로는 /home/pi/OSJ/EchoTcp 이며,
라즈베리파이를 부팅 시켰을 때 ServerECHOTcp 를 자동실행 하려고 합니다
sudo nano /etc/rc.local
--------------------
fi #ADD line : su pi -c /usr/bin/java -classpath /home/pi/OSJ/EchoTcp/ ServerECHOTcp exit 0
-------------------
라고 해줬는데
/home/pi/OSJ/EchoTcp/: lasspath: command not found
명령을 찾을수 없다고 나옵니다
왜 그런건가요? 그리고
-classpath 를 입력하면 -다음 c는 잘려서 나옵니다 lasspath만 나오는데 이것이 문제될까요?
-cp 라고 줄여서 써줘도 동일하게 맨 앞에 c는 안 보이네요
/home/pi/OSJ/EchoTcp/ p: command not found 이렇게요
rc.local 과 init.d의 차이점은 rc.local은 한 번만 실행 시킨 후 끝이고,
init.d는 등록해준 후 계속 쓸 수 있다는 서비스인건가요?
init.d 는
네트워크 수정 후 재실행 할때 많이 사용 해봤습니다
sudo /etc/init.d/networking restart
networking 소스 보고 EchoTcp 등록 해주면 될 것 같네요
ServerECHOTcp 자동실행 하는 법
이렇게 하면 되는건가요?
Forums:
해결 했습니다 경로 부분에 su pi -c
해결 했습니다
경로 부분에 su pi -c "/usr/bin/java -classpath /home/pi/OSJ/EchoTcp/ ServerECHOTcp"
따옴표 붙여주니 잘 됩니다.
댓글 달기