반응형

putty에서 프로세스를 실행시키고 나가면 putty와 함께 프로세스도 같이 kill이 되버리는 사태가 발생을 합니다. 이게 원격 터미널에서는 이런일이 발생을 한다고 하는데 왜 그런지는 차치하고서라도 putty 끈다고 프로세스가 같이 죽어버리면 굉장히 곤란해집니다. 그렇기 때문에 리눅스나 유닉스나 nohup을 통해서 프로세스를 유지시키는 방법을 많이 쓰는데 IBM AIX에서는 유독 이 nohup 명령어가 잘 먹히지 않았습니다.

 

기존 리눅스에서는 "nohup [Process 명] > [내용 기록할 Log 파일명] &" 이라는 명령어로 대충 잘 알아먹는데 AIX는 유독 이게 안먹혀서 인터넷에서 찾다찾다가 드디어 먹히는 명령어를 찾았습니다....

 

 

만약 AIX에서 root로 로그인을 했다면...

nohup [Process 명] 2>&1 &  

위와 같이 적어도 대충 알아먹습니다만 문제는 root가 아닌 사용자 계정에서는 이러한 방법이 잘 먹히지가 않더군요.

 

 

 

만약 AIX에서 임의의 사용자 계정으로 로그인을 했다면...

nohup [Process 명] > [저장할 Log 파일명] 2>&1 </dev/null &

이렇게 작성을 해줘야 nohup이 제대로 작동하는 것을 확인할 수 있었습니다.

 

솔직히 두개의 차이가 뭔지는 잘 모르겠습니다. /dev/null 정도 추가했다고 이런일이 발생하나 싶지만 결국 이렇게 하니 nohup이 제대로 작동하는 것을 확인할 수 있었습니다.

 

혹시나 AIX에서 nohup 잘 안먹히면 참고하시기 바랍니다...

 

 

해당 명령어는 [ AIX 7.2 ]에서 작동이 보증되었음을 알립니다.

 

반응형

AIX에 대한 이미지 검색결과




요 근래 AIX 7.2에 MariaDB 및 MySQL을 설치하려 했으나 잠정적 불가능으로 결론..


첫번째로, AIX 7.2 전용 MySQL이 없다. RPM 지원은 당연히 없으며 MariaDB는 태생부터가 AIX 지원을 안한다.



두번째로, 그나마 AIX 5.1에서 설치가 가능하던 MySQl 3.2.58 버전 설치 시도 했으나 역시 실패


IBM 공식 홈페이지에 있는 AIX ToolBox for Linux Application을 통해 예전에 MySQL이 그래도 AIX를 지원한다는 사실을 발견하여 지푸라기 잡는 심정으로 그 RPM을 다운받아 설치 시도 RPM 설치까지는 모두 완료했으나 실행시 에러 발생.


관련 에러 원인 및 해결방안을 아무리 뒤져도 나오지 않았다. 심지어 구글 및 스택 오버플로우에서도!


그나마 찾고 찾아서 지나가는 말투로 적은듯한 댓글에 적혀 있는것이... 32bit / 64bit 지원여부에 따라서 안될것이라는 의견


찾아보니 MySQL 3.2.58 버전 출시는 2003년... 64비트 어플리케이션 자체가 생소하던 시절인데 AIX 7.2 64비트에 그래서 설치가 안되는 것인가... 어쨌든 실패




세번째로, 어떻게 MySQL 까지 실행은 성공했으나(그런데 Alpha 버전...) MySQL 연동에 필요한 라이브러리 실행 불가.


C++ 소스코드에서 MySQL DB와 연동시키려면 아마 절대다수가 MySQL Connector/C++을 사용할것이다.


그런데 Connector/C++이 1.1버전 이상에만 들어있는 함수를 사용했다면 역시 불가...


내가 찾아보니 기존 리눅스 소스에서는 1.19버전(즉... 최신....ㅡㅡ....) 함수를 마음껏 사용해서 짜놨기 때문에 소스코드 짜기는 참 쉬웠으나 결국 AIX에서는 불가. 


왜냐하면 AIX를 지원하던 마지막 버전이 1.1이기 때문에 그 이후의 버전의 새 함수를 사용한다면 구 버전으로 갈아치우거나 해야한다.


그럼 Connector/C++ 1.19버전의 라이브러리만 추출해서 적용하면 되는거 아닌가?


시도 안해봤을리가 있나... 이미 해봤으나 1.19 버전 소스코드를 받아 갖은수를 써서 Make를 시도해봐도 불가...


아예 소스코드 자체가 문법에 안맞다고 광활한 에러를 내뿜기 시작한다. 소스 코드 자체가 리눅스에 맞게 짜여진듯...


라이브러리 추출불가.


그럼 AIX를 지원하던 1.1버전 이전의 구버전 Connector/C++은? 라이브러리 추출 되지만 그 라이브러리 가지고는 적용 불가. 언급했다시피 최신버전의 Connector 함수를 마음껏 사용했다.





네번째로, 그렇다면 AIX 7.2에 적용할수 있는 DB를 쓰면 되지 않는가?


물론 있다. IBM의 DB2와 오라클... 이름만 들어봐도 그 포스가 절절히 흐르지만 라이센스료만 잘못하다가 억 소리나는 매우 비싼 분들이시다.


무료를 지향하는 나에게는 이미 요단강 건너서 ㅂ2 할 물건들



결론 적으로 AIX 최신버전에 MySQL을 포함한 MariaDB 등 GPL 라이센스를 따르는 오픈소스 DB들은 모두 적용이 잠정적으로 불가능하다.


물론 잠정적이라는 것은 내가 아직 실력이 부족해서 안되는것일수도 있고... 뭐 그렇다.


지금까지의 결론으로는 난 삽질만 한것이다.


능력자 분 누군가가 나의 글을 본다면 혹시 해결방법을 알고 있다면 꼭 댓글을 달아주셨으면 한다... ㅠㅠ 불쌍한 나를 좀 구제해주소서


반응형

준비물 : Apache-log4cxx / APR / APR-util



Apache-log4cxx Download : https://logging.apache.org/log4cxx/latest_stable/download.html


APR & APR-util Download : http://apr.apache.org/download.cgi




가장 먼저 저 세개의 파일을 다운 받아야 한다. 모두 tar.gz 형태로 압축되어 있어 압축 풀기가 그나마 수월한 편이다.





  APR 설치 방법



APR을 가장 먼저 기술하는 이유는 설치파일들의 의존성 때문이다.


우분투나 센트OS 쓸때는 겪어본적이 없는것 같았는데 이 의존성 때문에 은근히 사람 골때리게 만들더라...


의존성은 간단히 말해서 설치하기 위해서 먼저 깔려 있어야 하는 파일 뭐 그런거다


이 의존성 때문에 설치 순서는 무조건 APR -> APR-util -> log4cxx 로 가야 한다.


이 순서를 지키지 않는다면 make가 전혀 되지 않으니 주의. 물론 무시하고 설치하는 방법이 있다만 별로 권장하고 싶지는 않다.


APR을 설치하는 방법은 간단하다.




1) 다운로드 사이트에서  "Unix Source: apr-1.6.3.tar.gz"  다운받기(버전 상관없음. 그냥 최신버전으로...)


2) "gzip -dc apr-1.6.3.tar.gz | tar xvf -" 명령어를 통해 압축 풀기 (gzip이 없다면 rpm을 구해서 설치할것)


3) cd apr-1.6.3.tar.gz 로 폴더 이동


4) ./configure


5) make


6) make install



APR은 설치가 그리 어렵지 않다. 의외로 상당히 간단한 편







  APR-util 설치 방법


APR을 설치 했기 때문에 이제 APR-util 설치가 가능하다. 



APR-util을 설치하는 방법은 다음과 같다


1) 사이트에서 다운 받기


2) "gzip -dc apr-util-1.6.1.tar.gz | tar xvf -" 으로 압축 풀기


3) cd apr-util-1.6.1.tar.gz 폴더 이동


4) ./configure --with-apr='apr이 위치한 경로'    (예를 들어 아까 APR을 압축풀고 MAKE 하고 지지고 볶고 하던 곳이 /usr/local/apr-1.6.3 이라는 경로에 있다면 ./configure --with-apr='/usr/local/apr-1.6.3' 입력해야 함)


5) make


6) make install



=> APR-util 에서는 configure 에 옵션이 들어가기 시작했다. 이것은 어찌보면 당연한것인데 apr-util은 apr이 필수로 필요하기 때문에 어느 경로에 있는지 정확하게 찍어줘야 한다.


그렇기에 저런 옵션이 들어간것이다.








  Apahce-log4cxx 설치 방법



이제 APR과 APR-util 모두 설치했으므로 의존성에 의한 설치 불가는 발생하지 않는다.


1) 사이트에서 다운


2) 똑같이 압축풀기


3) 폴더 이동


4) ./configure --with-apr='apr이 위치한 경로' -- with-apr-util='apr-util이 위치한 경로'

   ex) ./configure --with-apr='/usr/local/apr-1.6.3' -- with-apr-util='/usr/local/apr-util-1.6.1'


5) make


6) make install






이렇게 하면 log4cxx 설치는 모두 끝이 난다. RPM이 없어서 소스 설치 하는게 매번 번거롭지만 어쨌든 AIX에서도 LOG4CXX를 사용할수 있음에 의의를 두자






  Error 발생시 해결방법



아마 Apache-log4cxx 설치 하다가 오류가 발생할 가능성이 좀 있다.


내가 겪은게 2가지 인데 하나는 No Space~ 로 시작한 오류와 하나는 ' ' not been declared 라는 오류이다.


No Space ~ 오류는 공간이 없는거니까 걍 해당 디스크의 용량을 확보해주자.



다만 not been declared가 조금 까다로운데 이럴 경우 소스 코드도 수정을 해야 한다.


예를 들어 



console.cpp : ::memcpy has not been declared 라는 에러가 발생할 가능성이 있다.


이럴 경우에는 해당 소스코드에 들어가서 헤더를 추가해주면 된다. 대체로 memcpy, memmove와 같은 것들이 걸리는데 대부분 String 관련 함수이니 


#include <cstring>을 소스코드 내에 추가하면 완성.


위의 케이스는 console.cpp를 vi 편집기로 들어가서 직접 헤더 하나 추가해주면 된다.






 재밌게 읽으셨다면 공감(♥) 버튼을 한번만 꾹 눌러주세요.

여러분들의 공감 하나가 블로그 포스팅의 원동력이 됩니다.

로그인 할 필요 없으며 1초면 충분합니다.


댓글도 언제나 환영합니다! 망설임 없이 댓글 달아주세요!








+ Recent posts