반응형
728x90
반응형

git 클라이언트를 이용하여 pull 땡기다보면 별의 별 에러들을 다 본다..

pull, commit, push, merge 가 잘 이루어질 경우에는 그 쾌감은 이루 말할 수 없다.
하지만 이와 반대로, conflict를 제외한 "요상한" 에러들이 날 경우에는 그 빡침 또한 이루 말할 수 없다...

이번 포스팅에서는 그 "요상한" 에러들 중 하나를 다룰 것이다..

[에러]

git error;;

There are no candidates for merging among the refs that you just fetched.
Generally this means that you provided a wildcard refspec which had no
matches on the remote end.

git pull 시, 위와 같은 에러가 난다. 그래서 구글링 해봤을 때, 가장 유력했던 글은 아래 링크와 같다.

https://stackoverflow.com/questions/13799108/git-wildcard-refspec-with-no-match-on-remote-when-pulling

 

Git: "wildcard refspec" with no match on remote, when pulling

I have setup a new Git repository at cloufforge and have some unusual problems. When I do a git pull origin master From https://dndigital.git.cloudforge.com/project * branch master ...

stackoverflow.com

위 링크의 내용 중 답변에 해당하는 부분들을 간단히 정리해보면, 
    1. Having different versions of Git clients could become problematic it seems
        -> push 한 곳과 pull 한 곳의 git client 버전이 다른 경우
    2. destination folder being out of space.
        -> git pull 하는 곳의 폴더의 용량이 가득 차서 부족한 경우
    3. Happened to me when I tried to pull from mounted (read sshfs) directory
        -> 마운트된 외부 디렉토리에서 git pull 을 때리는 경우
    4. .git/config 설정 오류

실제로 가능성이 있던 오류들을 정리해보았다.

내 경우에는 3번과 같다.

사진

위와 같은 사진과 같은 환경에서 작업을 한다.

  • 윈도우 os에서 vm 환경으로 우분투 os를 올리고
  • vm 우분투 os 내에서 Apache2 환경을 구성하고
  • Apache2에서 서비스 할 웹 코드를 윈도우 os의 폴더로 마운트하여 사용(Shared Folders)

이런 상태에서 git pull 명령을 ssh 접속하여 우분투 os에서 git 작업을 하니까 발생하는 에러였다.

[해결 방법]

위와 같이 윈도우에서 직접적으로 git 작업을 진행하니까 감쪽 같이 에러가 사라졌다!

728x90
반응형
728x90
반응형

Apache2 VHost 설정하기

  • Apache Vhost 설정

Vhost란? Apache2의 Virtual host 기능을 통해서 하나의 아파치 서버에서 독립된 서버 공간을 나누는 작업을 의미한다.

설정 파일 조작

vhost에 필요로 하는, 수정해야하는 설정들은 위 그림에서 처럼 3가지이다.

ports.conf : 각 vhost 마다 사용할 포트 등록.
sites-available, -enabled : vhost에 필요한 설정 파일 등록.

먼저, /etc/apache2 경로의 sites-available/ 디렉토리 내에 필요한 파일을 구비할 것인데, sites-available 디렉토리현재 비활성 중인 사이트들의 설정 파일을 담고 있는 디렉토리이다. 

001-autotag.api 라는 이름으로 가상 환경을 나눈다. 내용은 다음과 같다.

<VirtualHost *:7011> 과 같이 해당 가상 환경에서 사용할 포트를 기재해주고,
ServerName 에는 도메인 주소가 들어간다.
DocumentRoot 의 경우, 렌더링할 웹 문서 파일이 존재하는 Default 경로라고 생각하면 되겠다.
ErrorLog 및 CustomLog 는 해당 vhost에서 발생하는 로그들을 어디에 저장할 것인가를 지정한다.
<Directory ~ > 부분은 해당 vhost에 대한 옵션들이라고 생각하면 된다.

--------------------------------------------------------------------------------------------------------------------------------------------------
[해당 내용]
<VirtualHost *:7011>
ServerName autotag.api
ServerAdmin ysho0707@gmail.com
DocumentRoot /server_app/autotag.api
ErrorLog ${APACHE_LOG_DIR}/django.api/error.log
CustomLog ${APACHE_LOG_DIR}/django.api/access.log combined
          <Directory /server_app/autotag.api>
                    Options All
                    AllowOverride All
                    Require all granted
          </Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
--------------------------------------------------------------------------------------------------------------------------------------------------

그리고 다음으로는 sites-enabled 디렉토리를 수정할 것이다. sites-enabled 디렉토리는 현재 활성 중인 사이트의 설정 파일들을 갖는 디렉토리인데, 보통 sites-available 디렉토리에서 심볼릭 링크를 걸어서 설정 파일을 채워넣는 형태로 진행이 된다. 그 부분을 다음에서 확인할 수 있다.

sudo ln -s /etc/apache2/sites-available/001-autotag.api.conf /etc/apache2/sites-enabled/001-autotag.api.conf

위의 명령어를 통해 심볼릭 링크를 건다.

반응형
728x90

Port 수정

다음으로는 port를 재설정할 것이다.

위와 같은 경로에 ports.conf 파일이 존재하는데 이 부분에 해당 Virtual Host 공간의 접속 포트를 추가하면 된다. 위 과정 중에서 sites-available 디렉토리 내에 001-autotag.api.conf 의 가장 첫 줄에 포트 번호가 있다. 그 번호를 추가한다.

포트를 추가하면 기본 default로 정했던 7010 포트 뿐만 아니라, autotag.api 이름의 가상 호스트의 포트 또한 접속 요청으로 수용할 수 있다.

Apache2 재시작

아파치를 위와 같이 재시작하고, 접속을 시도해본다.

접속 및 테스트

위와 같이 깔끔하게 접속이 잘 된 모습을 볼 수 있다. 해당 페이지는 “hello” 를 출력하는 페이지 파일을 001-autotag.api.conf 의 DocumentRoot 경로에 기술한 경로에 사전에 집어넣어 렌더링 된 상태이다. 

해당 디렉토리에 아무 것도 넣지 않고 접속하면 아무 것도 출력되지 않으니 확인을 해야한다.
/etc/hosts를 수정한다면 다음과 같이 접속 또한 가능하다.

/etc/hosts 파일을 다음과 같이 수정하게 되면 autotag.api 라는 주소는 앞으로 192.168.0.112로 바꿔서 해석하겠다 라는 의미를 갖는다. 

여기서 중요한 것은 그 말인 즉 슨 내 컴퓨터 내에서만 적용되는 규칙이다. 외부 사람들은 백 날 autotag.api를 친다 하더라도 접속이 되지 않을 것이다.

아래와 같이 접속이 잘 되는 것을 확인할 수 있다.

 

 

 

 

 

 

728x90
반응형
728x90
반응형

SSH 에서 제공되는 로컬-원격 서버 간의 파일 송신 기능을 하는 명령이다 : SCP

어디서 어디로 보낼지에 따라 명령 형태가 달라지지만, 항목들은 비슷하다.

1] 원격 -> 로컬 파일 전송

원격 -> 로컬 파일 전송이라는 말의 의미는 "내 로컬에다가 원격에 있는 파일 수신 받을 꺼임." 이 소리임.

scp [옵션들] [계정명]@[원격 ip 주소]:[수신 받을 파일의 경로와 파일명] [수신할 로컬의 위치]

 

2] 로컬-> 원격 파일 전송 -> 이걸 주로 많이 쓰는 것 같다 나는

이건 그냥 "내 로컬에 있는 어떤 파일을 원격지로 보낼 꺼임." 이 소리임.

scp [옵션들] [전송할 파일의 경로 및 파일명] [계정명]@[원격 ip 주소]:[전송할 원격지의 경로]

3] [옵션들] ?

-P(대문자) : 포트 번호를 지정함
-p(소문자) : 원본 파일의 권한이나 시간 등을 유지한 채로 송/수신
-r : 하위 디렉토리 및 파일 포함.

728x90
반응형
728x90
반응형

Maria db를 사용하면서 DB를 저장한다거나, 복구 하는 방법에 대한 기록이다.

간혹 서버를 사용하다가 서버를 밀어야하는 상황이거나 다른 곳으로 옮겨야할 때, 사용한 DB의 규모가 소규모이지만 다시 하나 하나 database와 table 생성 및 데이터들을 insert하기에는 애매한 규모일 때, 나는 이 방법을 즐겨 쓴다.

 

mysqldump -u계정 -p비밀번호 --all-databases > /sql/형태로/저장될/경로/파일이름.sql

위와 같은 형태로 생성이 된다. ( sql )

일괄적으로 실행할 수 있는 쿼리 형태가 저장되어 있다.

그리고나서 생성된 .sql 쿼리 모음 back up 파일을 이용하여 다시 DB를 복원할 때는 다음과 같다.

mysql -u root -p DB이름< /경로/쿼리백업파일.sql

DB를 선택해서 복원한다. 즉, 원하는 DB는 따로 생성을 해야한다는 소리이다.

 

728x90
반응형
728x90
반응형

oracle 사의 sql developer 툴은 매우 사용하기 편리하다. 익숙해서 그런가? 

아무튼 윈도우에서 즐겨 사용하곤 했는데, 우분투에서는 혹시 사용할 수 있으려나? 하고 검색해본 결과, 가능하다!!
그래서 나중에 또 기록용으로 이번 포스팅을 작성한다.

다운로드 파일 준비

먼저, JDK의 다운로드이다.

https://www.oracle.com/java/technologies/javase-downloads.html

 

우분투에서 설치할 것이니, Linux x64 Debian Package 를 다운로드 하면 된다.

다음으로는 Oracle Sql Developer의 다운로드이다.

https://www.oracle.com/tools/downloads/sqldev-downloads.html

20.2 버전으로 꼭 Other Platforms 로 다운로드 한다.

다음으로는 Msql Connector JDBC 드라이버이다. Oracle 용 sql developer 이니 다른 DB도 사용할 수 있도록 만들어준다.

https://dev.mysql.com/downloads/connector/j/

 

MySQL :: Download Connector/J

MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0.

dev.mysql.com

platform independent 로 꼭 다운로드 해야한다.

 

모두 준비된 모습이다.

JDK 11 설치

sql developer 는 자바 기반으로 jvm 위에서 돌아가기 때문에 필히, jvm 을 설치해야한다. 그러기 위해선 jdk를 설치하면 되겠다.

sudo dpkg -i jdk-11.0.9_linux-x64_bin.deb

설치가 완료되면 다음 디렉토리를 탐색하여 존재하는지 확인한다.

설치 끝

 

SQL Developer 설치

설치랄 것도 없이 그냥 압축을 풀고 경로에 넣으면 끝이다.

sudo unzip ./sqldeveloper-20.2.0.175.1842-no-jre.zip

압축 해제가 끝났다면 /opt 경로에 넣어준다. 안 넣어줘도 상관없지만 3rd party app의 경우 이곳에 넣어주고, 탐색할 때도 용이하다.

sudo mv ./sqldeveloper /opt/

 

해당 경로에 접근하여 sqldeveloper.sh 파일을 실행하는데 위와 같은 입력이 나온다면 ctrl+c 를 눌러 중단한 뒤, 위 사진 중 가장 오른 쪽에 있는 빨강 박스 속 경로를 vim 이나 각종 에디터로 열고, jdk 의 설치 경로를 입력한다.

jdk는 따로 설정되지 않는 이상 /usr/lib/jvm 내에 설치된다. 직접 경로를 접근하여 jdk 경로를 확인해 본 뒤 복사 후, 아래 처럼 vim 등으로 빨강 박스 내의 경로를 연다.

그리고 나서 SetJavaHome 주석 쳐져 있는 곳 아래에 그림과 같이 경로를 적어 넣고 저장한다!

저장 후 실행하면 아래와 같이 완성!

그러나 아직까지는 oracle db에만 접근이 가능하다. 아까 다운로드 받은 MYSQL JDBC 드라이버 추가를 통해 mysql, maria db 등을 사용할 수 있다. 아까 받은 mysql-connector-java-8.0.22.tar.gz 압축을 푼다.

압축을 풀고 천천히 살펴본다면, mysql~~~.jar 파일이 존재한다. 이를 sql developer 상에서 드라이버 추가해주면 되는 것이다!

작성자는 개인적으로 두고두고 실행할 것이니 sql developer 앱이 존재하는 경로에 옮겨 저장을 했다.

sql developer 에서 도구 탭 -> 환경 설정 -> 데이터베이스 -> 타사 JDBC 드라이버를 누른 후 항목 추가로 아까 그 ~.jar 파일을 추가하면 된다.

짠~! mysql 을 선택한 후, maria db 혹은 mysql db에 접근하면 되는 것이다!

위와 같이 우분투 메뉴나 런처에 아이콘을 추가하고 싶은 경우, 아래의 경로로 접속하여 실행해보자

https://typingdog.tistory.com/91?category=933956

 

우분투 20.04에서 JetBrains 프로그램 설치 및 런처에 아이콘 추가.

제트 브레인 사의 프로그램 ( Clion, Intellij, Pycharm 등) 을 우분투에서 다운로드 하여 압축을 풀어보면, 바로 실행할 수 있는 스크립트를 제공하기 때문에 런처에 실행 아이콘이 자동으로 제공되지

typingdog.tistory.com

 

728x90
반응형

'리눅스:Ubuntu > Database 관련' 카테고리의 다른 글

maria db 백업 및 복구 방법  (0) 2021.01.08
우분투 20.04에서 Maria db 설치  (0) 2020.09.29
728x90
반응형

먼저, Vhost란 Virtual Host의 줄임말이다.

원래 Apache를 설치하면 /var/www/html 디렉토리에 있는 웹 문서를 로드하여 웹 서버를 서비스하는데, 이 상태는 하나의 host가 서비스되는 것이다. 아래와 같이 말이다.

 

그러나 Vhost 를 이용하면 달라진다. 아래의 그림처럼 디렉토리 별로 완전히 다른 호스트로 구분되어, 하나의 웹 서버에 여러 호스트를 운영할 수 있는 것이다.

이 때, 호스트의 분기는 rewrite 등의 모듈을 함께 이용하기 때문에 rewrite까지 이번 포스팅에서 다룰 것이다.

VHOST 설정

VHOST 설정을 위해서는 각 가상 호스트 별로 설정 파일을 마련해야한다. 바로 다음과 같은 경로에!

sudo vim /etc/apache2/sites-available/001-phindol.conf

001-phindol.conf 라는 설정 파일을 만듦으로써 하나의 가상 호스트를 생성하는 것이라고 보면 되겠다. phindol은 임의 이름이다.

sites-available 를 헤깔리면 안된다. 이 .conf 파일의 내용은 아래와 같다. 각 지시자들은 검색을 통해서 확인하도록 한다.

<###VirtualHost *:80###>
    ServerName phindol.com
    ServerAlias *.phindol.com
    ServerAdmin ysho0707@gmail.com
    DocumentRoot /var/www/html/phindol.com
    # chmod -R 755 path

    ErrorLog ${APACHE_LOG_DIR}/phindol/error.log
    CustomLog ${APACHE_LOG_DIR}/phindol/access.log combined

    <###Directory /var/www/html/phindol.com###>
        Options All
        AllowOverride All
        Require all granted
# rewrite 명령어
# sudo a2enmod rewrite
# sudo systemctl restart apache2
        RewriteEngine on
        RewriteCond %{REQUEST_URI} ^(.*)\.(html|htm|php|lib|act|pcls|pexe)$
        RewriteRule . /var/www/html/phindol.com/System/enter.php [L]
    <###/Directory###>
<###/VirtualHost###>

(###은 알아서 지우도록 하자)

참고)
/var/www/html/sub에 해당하는 부분에서 Permission 에러가 난다면 위의 주석 처리된 chmod 755 권한으로 갱신한다.

위에서 sites-available 디렉토리 내에 생성을 했다면 다음은 sites-enabled 디렉토리 내에 심볼릭 링크를 생성해야한다.

아래와 같이 하며 명령어는 다음과 같다.

sudo ln -s /etc/apache2/sites-available/001-phindol.conf /etc/apache2/sites-enabled/001-phindol.conf

sites-available 디렉토리 내의 conf 파일과 동일한 이름으로 심볼릭 링크를 지어준다.

vhost를 추가할 때에는 아래의 명령으로 추가됨을 반영하자.

sudo a2ensite phindol(sites-available, enable등에서 지정했던 이름 ex] 001-phindol.conf 에서의 phindol)

 

윈도우 host 파일 설정

conf 파일의 설정을 봤다면 알겠지만 취급할 virtual host의 도메인은 "phindol.com" 이다.

그러나 우리는 해당 도메인을 구매하여 구비하지 않았기 때문에 실제로 테스트를 할 수 없다. 이러한 경우 윈도우의 host 파일을 수정하여 나의 컴퓨터 내에서 해당 도메인에 대한 접속을 바꿔주는 것이다.

C:\Windows\System32\drivers\etc

위 경로를 관리자 권한으로 열고, 아래의 그림처럼 수정한다. ( 탭 단위로 구분한다 )

우분투 20.04에서 테스트 할 경우 127.0.0.1 이 먹히지 않는 경우가 있어 확인해 봤더니 다음과 같은 이유였다.

그리고 나서 아파치를 재시작한다.

#은 지우고 실행한다.

성공적인 결과가 말을 해주고 있다.

왼쪽은 http://localhost/ 도메인으로 vhost 설정이 되지 않은 메인 host이고 오른쪽은 vhost 설정이 된 가상 host이다. vhost 설정을 하면서 rewrite라고 하는 주소를 고쳐쓰는 모듈을 설정했는데 왼쪽과 오른쪽에서 rewrite 모듈이 실행 안되고/되고 의 결과를 본다면, vhost 설정을 통해 하나의 아파치 웹 서버에서 서로 독립적인 사이트처럼 실행된다는 사실을 확인할 수 있다.

로그 폴더의 생성

vhost 설정 중 log 각 vhost 마다 로그 폴더를 따로 두었는데, 이에 따른 생성 및 권한 설정을 해야한다.

sudo mkdir /var/log/apache2phindol

Rewrite 모듈 설정

Rewrite는 Request를 정해진 Rule에 의해서 다른 URL or File로 보내는 모듈을 뜻한다. 

예를 들어, 다음 그림과 같다고 보면 된다.

그렇다면, redirect와 다른 점은 무엇일까?

redirect 는 클라이언트 사이드에서 처리가 이루어지며, 클라이언트의 주소 표시줄에 변경된 주소가 표시된다.
rewrite 는 서버 사이드에서 처리가 이루어지며, 클라이언트의 주소 표시줄에 변경된 주소가 표시되지 않는다.

위의 vhost .conf 파일 설정 중 rewrite 부분을 다시 확인 한다면,

이 부분이다. 각 지시자들에 대한 설명은 검색을 통해 확인한다.

RewriteEngine ~ RewiteRule 까지가 본인이 정한 Rewrite 룰인 것이다. 저 룰이 실행되려면 다음과 같은 명령을 명령 라인에 실행한 뒤 아파치를 재실행 하면 된다.

sudo a2enmod rewrite # rewrite 모듈 활성

이후에 apache 재실행을 하면 phindol.com 에 대해서만 rewrite 룰이 적용되는 것을 아래의 그림처럼 확인할 수 있다.

728x90
반응형
728x90
반응형


데이터를 추가하고, 저장하고 테이블 형태로 열람하고 관리할 수 있는 웹 서비스를 만들어 볼 기회가 주어졌다.

간단하게 만드는 경우인지라 C언어와 비슷하고 익숙한 언어인 PHP를 기반으로 구현하게 되었다. 이에 따라서 필요로하는 환경을 구축하는 내용을 다루는 포스팅이다.

 

Apache2 설치

아파치 설치는 매우 간단하다.

sudo apt install apache2

설치 후, 다음 명령어를 통해 서비스가 켜져 있는지 확인한다.

sudo /etc/init.d/apache2 status

꺼져있다면, 다음 명령어를 실행하여 서비스를 켜주자.

sudo /etc/init.d/apache2 start

localhost 라고 인터넷 주소창에 입력했을 때, 다음과 같이 뜬다면 설치 및 서비스 성공이다.

 

APACHE 포트 변경

이번엔 아파치 서비스의 포트를 변경할 것이다. 아래의 경로(명령어)로 들어가면 포트를 변경할 수 있다.

sudo vim /etc/apache2/ports.conf

기본으로 80 포트로 적용되었지만, 나는 익숙한 포트 번호로 변경하였다.

포트 변경을 원치 않는 경우는 안 바꿔도 된다.

이제 설정이 변경되었으니, 아래와 같이 재시작을 한다.

sudo /etc/init.d/apache2 stop
sudo /etc/init.d/apache2 start
혹은
sudo /etc/init.d/apache2 restart

PHP 설치

서버 사이드 스크립트 언어 설치이다.

다음 명령을 통해서 설치한다.

sudo apt install php php-mysql

설치가 완료되면 Apache2와 연동이 되는지 확인하기 위해서 아래의 과정들을 실행하여 확인해본다.

sudo vim /var/www/html/test.php

위 명령으로 편집기에 들어가서 아래와 같이 입력하고 저장한다.

<?php phpinfo(); ?> 

이러한 화면이 떠야한다. 뜨지 않는 경우 apache2 서비스를 재실행한다. (stop -> start)

이제 이 환경 위에 간단한 웹 서비스를 올리면 되겠다 ㅎㅎ

728x90
반응형
728x90
반응형

Permission denied (publickey)

SSH 접속 시, 위와 같은 에러가 나는 경우 공개 키 등의 문제 등 여러 문제들이 있지만 내가 경험한 경우를 먼저 정리하도록 할 것이다.

먼저, 공개 키로 인한 권한 거부가 떴다는 건 ssh 설정에서 ssh 패스워드 접속을 허용하는지 안 하는지 확인해보아야 한다.

sudo vim /etc/ssh/sshd_config 

위 파일을 vim 으로 열어서 아래의 두 항목을 수정해주면 된다.

PermitRootLogin prohibit-password -> PermitRootLogin yes
PasswordAuthentication no -> PasswordAuthentication yes

sudo /etc/init.d/ssh restart

위 명령으로 서비스를 재시작.

위와 달리 잘 접속되는 광경을 목격할 수 있다.

728x90
반응형
728x90
반응형

sshd: no hostkeys available -- exiting.

Ubuntu 20.04 에서 SSH 서비스를 실행시킬 때, 위와 같은 에러가 뜰 경우, 해결 방법이다.

sudo ssh-keygen -A

 

 

 

 

728x90
반응형
728x90
반응형

포트 변경 및 서비스 실행 / 중단을 위한 서비스 등록, 재부팅 시 자동 시작 

지난 포스팅(https://typingdog.tistory.com/99)에서 SVN 서버 설치 및 구동 방법을 다루었다. 이번 포스팅에서는 시스템 부팅 시 자동 재 실행, 포트 변경 등을 정리해보았다.1. 서비스 등록자동 재 실행 및 systemctl 등을 통해 명령하기 위해서는 서비스에 등록을 해야한다. 

먼저, svn 을 자동으로 실행하는 데몬을 만든다.

sudo vim /etc/rc.local

# Subversion
svnserve -d -r /svn/svnrepo
위 내용을 rc.local 에 기록하고 저장.

/etc/init.d 디렉토리 내에 svnserve 라는 스크립트를 생성 후, 

아래와 같은 내용을 기록한다. 단,

DAEMON_ARGS="-d -r /svn/svnrepo --listen-port 5012" 

이 부분만 자신에게 맞게 수정한다.

-------------------------------------------

#! /bin/sh
### BEGIN INIT INFO
# Provides:          svnserve
# Required-Start:    $local_fs $syslog $remote_fs
# Required-Stop:     $local_fs $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start svnserve
### END INIT INFO

# Author: Michal Wojciechowski <odyniec@odyniec.net>

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="svnserve"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /svn/svnrepo --listen-port 5012"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

[ -x "$DAEMON" ] || exit 0

[ -r /etc/default/$NAME ] && . /etc/default/$NAME

. /lib/init/vars.sh

. /lib/lsb/init-functions

do_start()
{
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                || return 1
                        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
                                $DAEMON_ARGS \
                                || return 2
                        }

                do_stop()
                {
                        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
                        RETVAL="$?"
                        [ "$RETVAL" = 2 ] && return 2
                        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
                        [ "$?" = 2 ] && return 2
                        rm -f $PIDFILE
                        return "$RETVAL"
                }

        case "$1" in
                start)
                        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
                        do_start
                        case "$?" in
                                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
                        esac
                        ;;
                stop)
                        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
                        do_stop
                        case "$?" in
                                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
                        esac
                        ;;
                restart|force-reload)
                        log_daemon_msg "Restarting $DESC" "$NAME"
                        do_stop
                        case "$?" in
                                0|1)
                                        do_start
                                        case "$?" in
                                                0) log_end_msg 0 ;;
                                                1) log_end_msg 1 ;; # Old process is still running
                                                *) log_end_msg 1 ;; # Failed to start
                                        esac
                                        ;;
                                *)
                                        # Failed to stop
                                        log_end_msg 1
                                        ;;
                        esac
                        ;;
                *)
                        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
                        exit 3
                        ;;
        esac

        exit 0

-------------------------------------------

저장이 완료되었다면, 다음 명령을 통해서 실행 권한을 설정한다.

sudo chmod u+x /etc/init.d/svnserve

서비스를 등록한다.

sudo update-rc.d svnserve defaults

실행한다.

sudo service svnserve start

리부트 한 뒤, 아래 명령을 통해서 실행 중인지 확인해보고 실제 svn 브라우저를 통해서도 확인해본다.

netstat -tnl

728x90
반응형

+ Recent posts