스프링부트 재시작 스크립트 - 15/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

이미 실행중인 서버가 있으면 중지하고,

서버를 시작하는 스크립트를 만들겠습니다.

 

직접 실행할 수도 있고, 젠킨스 빌드 후에 서버를 재시작하기 위한 스크립트 입니다.

 

 

1. webapps 디렉토리 생성, 스크립트 파일 생성

mkdir /home/ec2-user/webapps
cd /home/ec2-user/webapps

vi /home/ec2-user/webapps/start.sh

 

 

2. 스크립트 복사 > 붙여넣기

#!/bin/bash

REPOSITORY=/home/ec2-user/webapps
echo "REPOSITORY = $REPOSITORY"
cd $REPOSITORY

PROJECT_NAME=springboot
echo "PROJECT_NAME = $PROJECT_NAME"

PROJECT_PID=$(pgrep -f $PROJECT_NAME)
echo "PROJECT_PID = $PROJECT_PID"

if [ -z $PROJECT_PID ]; then
    echo "no running project"
else
    kill -9 $PROJECT_PID
    sleep 3
fi

JAR_NAME=$(ls $REPOSITORY/ | grep $PROJECT_NAME | tail -n 1)
echo "JAR_NAME = $JAR_NAME"

java -jar $REPOSITORY/$JAR_NAME &

 

 

3. 스크립트 파일에 실행권한 부여 > 스크립트 실행

chmod 770 /home/ec2-user/webapps/start.sh

/home/ec2-user/webapps/start.sh

 

 

 

4. 실행된 스프링부트 프로젝트 확인

 

2020. 8. 7. 12:22 DEV ENVIRONMENT
vue.js, vue-router push, 라우터 리다이렉션 오류, Error: Avoided redundant navigation to current location

접속하자마자 다른페이지로 이동하게 하려고
$router.push(이동경로) 를 설정했더니,

/parkingLotList로 이동하는 라우터 리다이렉트

Error: Avoided redundant navigation to current location "주소" 오류가 찍힙니다.

이미 /parkingLotList에 있을때 리다이렉트하려고 하면서 오류가 발생합니다.

이 현상은 이미 이동할 주소에 있기 때문에 발생하는것이고 정상입니다.
이 오류를 없애려면 catch로 오류를 잡아내거나, 현재주소와 같은지 비교해서 실행되지 않게 하면 됩니다.

 

 

1. catch로 오류를 무시하기
this.$router.push('/parkingLotList').catch(()=>{});


2. 현재 주소와 이동할 주소를 비교해서 실행

if(this.$route.path!=='/parkingLotList') this.$router.push('/parkingLotList')

 

에러가 발생하지 않게 캣칭하거나 주소검사

 

2014. 2. 20. 22:36 COMPUTER/JAVASCRIPT, JQUERY
[JS/JQUERY] 제이쿼리로 자바스크립트 페이지 온로드 샘플 예제, Javascript onload function as Jquery
jquery로 페이지가 로딩 되었을 때 스크립트를 수행합니다.
안에 있는 코드는 jqgrid를 100%넓이로 맹그러주기 위해 창 리사이즈를 이벤트로 잡은 코드입니다.

$(function(){}); 요것만 쓰면 됩니다.

<body onload="alert()"> 과 같습니다.


<script type="text/javascript" src="/library/jquery-1.7.2.js"></script>
<script>
//<![CDATA[
$(function(){
	$(window).bind('resize', function() {
    	$("#jqgrid1").setGridWidth($(window).width()-16);
	}).trigger('resize');
});
//]]>
</script>








2014. 2. 17. 09:30 COMPUTER/JAVASCRIPT, JQUERY
[JS/JQUERY] 제이쿼리 셀렉터 예제, jQuery Selector Example, siblings, prevAll, append, parent, css

나(this)의 상위를 제외한 같은레벨의 백그라운드 컬러를 빨간색으로 변경

$(this).parent().siblings().css("background-color", "red");


나의 상위중 클래스가 .txt_2인 가장 가까운 객체의 백그라운드 컬러를 빨간색으로 변경

$(this).parent().prevAll('.txt_2:first').css("background-color", "red");


div의 lang속성에 안두리를 포함한 태그안에 html추가

$('div[lang*="kaudo"]').append('<p class="title_3">안녕하세요.</p>');



2013. 6. 18. 13:10 COMPUTER/JAVASCRIPT, JQUERY
[JS/IE7] 인터넷 익스플로어 7 용 JSON 라이브러리 파일

JSON.parse(), JSON.stringify(), JSON.encode()



json2.js


JSON 오브젝트를 생성하거나 스트링형태로 변환하거나 등등등 할때 쓰는 JSON.method들이 있습니다.

다른 브라우저들은 잘 되는데 IE7같은 고물 브라우저에서는 에러가 납니다.


<script type="text/javascript" src="json2.js" ></script>

처럼 첨부해주면 IE7에서도 JSON을 사용할 수 있습니다.


2012. 9. 5. 17:41 PROGRAMMING
[CHROME/JS] 크롬 익스텐션 사용자 변수 저장/로드 샘플 예제

크롬 익스텐션 개발시 사용자 변수를 저장하거나 로드하는 예제 입니다.

 

익스텐션 특성상 사용자가 입력한값을 저장해놨다가

다시 꺼내서 불러내어놔야 할 경우가 많이 있습니다.

 

나름 쿠키를 사용해도 별 문제는 없지만,

크롬에서는 localStorage라는 저장소가 있습니다.

 

 

저장하기 [SAVE]

localStorage["변수명"]=값; (popup.html 8줄)

 

불러오기 [LOAD]

var 변수=localStorage["변수명"]; (popup.html 15줄)

 

 

샘플 프로젝트(?)

 

1. 익스텐션에서 사용할 디렉토리를 만듭니다.

 

2. manifest.json 작성

{
	"name": "kaudo chrome extension sample",
	"version": "1.0",
	"description": "blog.nachal.com",
	"browser_action": {
		"popup": "popup.html"
	},
	"permissions": [
	],
	"background": {
	}
}

 

3. popup.html 작성

<html>
<style>
textarea{width:300px;height:50px}
input{width:300px}
</style>
<script type="text/javascript">
var update=function(str){
	localStorage["source"]=str;
	result.value=str.toLowerCase().replace(/(\_[a-z])/g, function($1){
		return $1.toUpperCase().replace('_','');
	});
}

var load=function(){
	if(localStorage['source']) source.value=localStorage['source'];
	update(source.value);
}
</script>
<body onload="load()">
<textarea id="source" onkeyup="update(this.value)" onfocus="update(this.value)" onblur="update(this.value)">
AHNDOORI DOORI AHN
</textarea><br/>
<textarea id="result"></textarea>
</body>
</html>

 

 

 

2011. 1. 11. 17:44 DEV ENVIRONMENT
[ECLIPSE] 이클립스 Getter/Setter 메소드 자동생성 기능, Generate Getters and Setters...
삽프로그래밍에 가장중요한 이클립스에서도 가장 중요한 기능.
get/set메소드 자동생성기능

이 포스트를 아직도 이 기능을 모르고,
오늘도 get/set을 열심히 코딩하는 사람들에게 바칩니다.


1. 변수정의를 합니다. 그리고 에디터창에서 단축키 Alt+Shift+S를 누르세요.



2. Generate Getters and Setters... 선택



3. 생성할 변수들을 선택합니다. 전 Select All을 선택하고 기본으로 만들었습니다.



4. 완성. 변수아래에 메소드가 생성되었습니다.



만약에 이 기능이 없다면, 이클립스 몽키를 설치하세요.
업데이트 주소: http://download.eclipse.org/technology/dash/update/
2010. 3. 24. 12:15 COMPUTER/JAVA, JSP
[JAVA/JSP] 정규표현식 스크립트 제거 Regex Replace Function
<script~, onclick=~, onmouseover=~, onmouseout=~ 제거함수

정규표현식 클래스 임포트
import java.util.regex.*;

함수 
public String getRemoveScript(String strContent){
  Pattern patternTag=Pattern.compile("\\<(\\/?)(\\w+)*([^<>]*)>");
  Pattern patternScript=Pattern.compile("(?i)\\<script(.*?)</script>");
  Pattern patternMouseOver=Pattern.compile("(?i) onmouseover=[\"']?([^>\"']+)[\"']*");
  Pattern patternMouseOut=Pattern.compile("(?i) onmouseout=[\"']?([^>\"']+)[\"']*");
  Pattern patternMouseClick=Pattern.compile("(?i) onclick=[\"']?([^>\"']+)[\"']*");
  Matcher matcherContent=patternScript.matcher(strContent);
  strContent=matcherContent.replaceAll("");
  Matcher matcherMouseOver=patternMouseOver.matcher(strContent);
  strContent=matcherMouseOver.replaceAll("");
  Matcher matcherMouseOut=patternMouseOut.matcher(strContent);
  strContent=matcherMouseOut.replaceAll("");
  Matcher matcherMouseClick=patternMouseClick.matcher(strContent);
  strContent=matcherMouseClick.replaceAll("");
  return strContent;
 }
2010. 3. 8. 23:36 COMPUTER/JAVASCRIPT, JQUERY
[JS,CSS] 잘까먹는 속성, 함수들
객체로 지정한 태그들의 위치값을 알아낼 수 있다

TAG.clientLeft
TAG.clientTop
TAG.clientWidth
TAG.clientHeight
TAG.offsetLeft
TAG.offsetTop

영역안에서 글씨가 넘어가버릴때 여러줄로 강제
word-wrap:break-word;word-break:break-all

한줄로 표시하고 점점점처리

NOBR width:WIDTH;text-overflow:ellipsis;overflow:hidden


페이지에서 루프 돌릴때 사용

ID=setInterval("FUNCTION()",INTERVAL);
ID=setTimeout("FUNCTION()",INTERVAL);
clearInterval(ID);

최근에 올라온 글

최근에 달린 댓글