Unix

BittorrentSync 유저레벨 systemd 데몬 만들기

ForceCore 2016. 1. 1. 20:00

http://forcecore.tistory.com/1315

이걸 거의 그대로 함.

 

우분투에서 해봤다.

1. 우선 systemd 용 디렉토리를 만들어야 한다.

 

$ mkdir -p ~/.config/systemd/user

 

 

 

2. 서비스 명세서를 만들자.

btsync.service 파일을 위의 디렉토리 안에 만든다. 내용은:

 

[Unit]
Description=BitTorrent Sync for xxx

[Service]
ExecStart=/home/xxx/usr/btsync/btsync --nodaemon --config /home/xxx/.config/btsync/sync.conf
WorkingDirectory=/home/xxx

[Install]
WantedBy=default.target


여기서, --nodaemon 에 주의할 것! 일반 프로그램처럼 컨트롤 c를 누르면 종료되는 것이다. 꼭 넣어야 작동한다 ㅎㄷㄷㄷ [Service] 안의 내용을 각자의 상황에 맞게 잘 맞추면 된다. [Install]은 바꿀 것이 없을 것이다. [Unit]은 나중에 systemctl 에서 보일 내용이라 알아보기 좋게 적으면 된다.

 

설정을 만들어주자. 먼저 .config/btsync 디렉토리부터 만들고...

forcecore@mars:~/.config/btsync$ ~/usr/btsync/btsync --dump-sample-config > sync.conf

 

파일 수정.

"storage_path" : "/home/forcecore/.config/btsync",

 

3. 이제 서비스를 활성화 하자.

 

$ systemctl --user enable btsync

$ systemctl --user start btsync

 

이렇게 해주면 된다. start가 stop이 잘 먹히나 체크하자.

 

 

4. 문제는, 저 서비스가 시작되는 시점이 언제냐면, GUI든 ssh든 유저가 로그인 할 때이다. 즉, 시스템이 재시작된다고 시작되지 않는다!!! loginctl을 써야 함.

 

# loginctl enable-linger username

 

이렇게 하면 자동으로 시작해줄 것이다. 재부팅을 해가면서 테스트 해보자.