4월, 2017의 게시물 표시

tomcat 구동 시 /dev/random 블로킹 이슈

[현상] 새로 지급 받은 리눅스 신규 장비에 java, tomcat 환경 구성을 하고 tomcat 구동 시 대기 상태로 빠지는 현상이 있었다. 특이한 점은 몇 분 지나면 tomcat 구동이 완료되는 경우와 몇 십 분이 지나도 서버 구동이 완료되지 않는 경우가 있다라는 것이다. 지연 현상이 발생되면서 다음과 같은 로그가 남았고, 해당 로그를 통해서 그 원인 및 해결 방법을 찾아보왔다. [2016-08-23 18:10:36 INFO  o.s.w.c.ContextLoader][313] - Root WebApplicationContext: initialization completed in 2785 ms 8월 23, 2016 6:11:14 오후 org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [38,251] milliseconds. [해결방법] 해결 방법은 생각보다 쉽게 찾을 수 있었다. 다음의 java 옵션을 추가해 주면 tomcat 구동 시 더이상의 대기 상태는 발생하지 않았다. JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom" 232라인 catalina.sh [원인] 해결 방법을 찾긴 했는데 왜 위의 옵션을 추가하면 지연 없이 톰켓이 구동되는지 찾아보았다. 리눅스 서버는 난수를 생성하기 위해서 기본적으로 /dev/random 디바이스를 사용한다.  - 리눅스의 /dev 디렉토리는 시스템 디바이스 파일을 저장하고 있는 디렉토리이다.    > 하드디스크는 /dev/sda    > 씨디롬은 /dev/cdrom /dev/random은 랜덤 비트의 풀이며 Entropy pool 이라고 부른다. 사용자 입력 신호(키보

centos 6.x mysql 설치

1. Yum 업데이트 # yum update # yum upgrade 2. 의존 패키지 설치 # yum install cmake gcc gcc-c++ cpp compat-gcc-32-g77 flex bison # yum install libpng-devel libjpeg-devel freetype-devel gd-devel ncurses-devel 먼저, 기존에 mysql이 설치되어있는지 확인 # rpm -qa | grep mysql mysql-5.0.95-1.el5_7.1 <삭제> # yum remove mysql mysql-server # rm -rf /var/lib/mysql 참조 :  http://dev.mysql.com/doc/refman/5.6/en/linux-installation-yum-repo.html https://www.digitalocean.com/community/tutorials/how-to-install-mysql-5-6-from-official-yum-repositories http://www.slideshare.net/xenonix/cent-os-mysql-56 3.  Yum Repository 생성 (Mysql 5.6버전부터 이렇게 깔아야 함*) # sudo wget  http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm # sudo yum localinstall mysql-community-release-el6-5.noarch.rpm  # yum install mysql-community-server 4. 실행 (아래 세가지중 하나) # sudo /etc/rc.d/init.d/mysqld start # sudo /etc/init.d/mysqld start # sudo /sbin/service mysqld start 5. service 로 실행

리눅스 시스템 시작시에 자동 실행할 파일 등록하기

리눅스 시스템 시작시에 자동 실행할 파일 등록하기 여러가지 방법이 있으나, 각기 알맞는 방법을 사용하는 것이 가장 좋다. ① # vi /etc/rc.local 에서 바로 실행하기 - 해당 파일 하단에 실행 명령을 바로 넣어준다. - 가능하면 실행 명령의 풀패스를 모두 적어주는 것이 좋다. - 시스템(H/W)와 관련된 명령을 입력할 경우에는 부팅시 rc.local의 실행 순서가 빠르기 때문에 실행되지 않는 경우가 있을 수 있다. (이 경우에는 해당 시스템을 먼저 띄우는 방법을 사용하도록 한다.) ② # vi /etc/rc.local 에 스크립트 파일을 등록하고, /etc/rc.d/ 경로에 해당 스크립트 파일 넣고 실행하기 - rc.local에서는 스크립트 파일을 불러오기만 하는 방법 - 작성할 스크립트 파일은 실행할 쉘을 먼저 지정해야 한다. - 시스템(H/W)와 관련된 명령을 입력할 경우에는 부팅시 rc.local의 실행 순서가 빠르기 때문에 실행되지 않는 경우가 있을 수 있다. (이 경우에는 해당 시스템을 먼저 띄우는 방법을 사용하도록 한다.) ③ /etc/profile.d/ 경로에 자동실행할 스크립트 파일을 넣어 둔다. - 위 경로에 있는 스크립트 파일들은 부팅시에 자동실행되는 파일들이다. - 보통의 프로그램들을 가동하는데 많이 사용한다. ④ /usr/share/autostart/ 경로에 자동실행할 프로그램 파일을 생성한다. - 위 경로에 있는 *.desktop 파일들은 부팅시에 자동실행되는 파일들이다. - 기존에 있는 파일들과 같은 형식으로 원하는 파일을 만들어서 사용할 수 있다. ※ 만약 특정 계정에서만 위의 사항을 적용하고자 할때는,     ~/kde/Autostart/ 경로에 설정한다. [예제] #=============================================================================== # vi /etc/rc.d/auto_start.sh #======

리눅스 path 지정 방법

root vi /etc/profile 계정 vi ~/.profile path 적용 source 숨겨진 디렉토리 확인 ls -a