반응형

출처: https://pinedance.github.io/blog/2017/09/12/Ubuntu-16.04-system-service-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0

 

Ubuntu 16.04 system service를 등록해 보자

Background

machine에서 server를 실행시키기 위해서는 system 동작 시에 자동으로 해당 server application이 실행될 필요가 있다.

예를 들어 cloud9이나 jupyter notebook을 ubuntu server에 설치하고 외부에서 사용한다고 가정해보자.

설치한 뒤에 수동으로 실행시켜도 되지만, 그러면 system을 reboot 한 뒤에 또 수동으로 동작시켜 주어야만 한다.

system에 service로 등록시켜 system 시작 시에 자동으로 동작시키면 이런 수고를 덜 수 있다.

Ubuntu 16.04를 기준으로 정리해 본다. jupyter notebook을 예로 든다.

※ 정확히는 모르겠지만 14.04 때는 이런 방법을 사용하였는데, 16.04부터는 달라진 듯하다.

Overview

  1. service file 만들기
  2. service 등록하기

Step by Step

service file 만들기

/etc/systemd/system/ 위치에 원하는 service file을 만들고 다음과 같은 내용을 넣어 준다.

service의 이름이 jupyterNotebook라면 file이름은 jupyterNotebook.service으로 한다.

# bash sudo nano /etc/systemd/system/jupyterNotebook.service

Copy

[Unit] Description=Jupyter Notebook Server [Service] Type=simple User=<username> ExecStart=/home/<username>/.local/bin/jupyter-notebook WorkingDirectory=/your/working/dir [Install] WantedBy=multi-user.target

Copy

<username> 등을 포함해서 해당 내용은 자신의 환경에 맞게 적당히 바꾸어야 한다.

service 등록하기

등록 방법은 간단하다. 다음을 bash에서 실행해 주면 된다.

# bash systemctl daemon-reload systemctl enable jupyterNotebook systemctl start jupyterNotebook

Copy

service 상태를 알고 싶다면 다음과 같이 확인해 볼 수 있다.

# bash sudo systemctl status jupyterNotebook

Copy

설정 등을 바꾸어서 다시 시작해야 할 때는 다음과 같이 한다.

# bash sudo systemctl restart jupyterNotebook

Copy

멈추거나 등록을 해제하고 싶다면 다음과 같이 하면 된다.

#bash sudo systemctl stop jupyterNotebook sudo systemctl disable jupyterNotebook

Copy

services 확인하기

service 전체 목록을 보기 위해서는 아래 명령을 실행 시킨다.

# show all services that has been loaded at boot and are active now systemctl list-units --type service # all services no matter they are active or not systemctl list-units --type service --all

Copy

Summary

어떻게 작동하는지, service file은 어떤 의미인지 정확하게는 알 수 없지만, 일단 된다.

14.04에서 쓰던 방법은 실패하는경우도 많았는데, 이 방법은 아직 그런 예가 없다.

반응형
반응형

출처: http://blog.freezner.com/archives/1049

 

우분투에서 패키지 파일(.deb) 파일을 설치하고 삭제하는 방법을 간략하게 설명합니다.

app.deb 라는 패키지 파일이 /home/account/에 존재한다고 가정하겠습니다. 그리고 패키지 명은 app입니다.

1. 설치

 

# sudo dpkg -i /home/account/app.deb

 

2. 설치된 패키지 상태를 확인

 

# dpkg -s app

 

3. 설치된 패키지 삭제 (설정 파일은 삭제 안함)

 

# sudo dpkg -r app

 

 

4. 설치된 패키지 삭제 (설정 파일까지 모두 삭제)

 

# sudo dpkg -P app

 

반응형
반응형

우분트에 프록시 설정하기




gedit ~/.bashrc

설정 값 맨위에 아래 내용을 추가한다

export http_proxy=http://<user>:<pass>@<proxy>:<port>/
export https_proxy=http://<user>:<pass>@<proxy>:<port>/


The modified bashrc file

저장하고 source 명령어를 통해 적용


source ~/.bashrc

wget 명령어를 통해 정상적으로 받아오는지 확인

env | grep proxy
wget “https://en.wikipedia.org/wiki/Ubuntu_(operating_system)"


반응형
반응형

ftp로 정보를 주고받아야 하는 상황이 생겨서 웹사이트를 올린 서버에 ftp를 열어놔야 하는 상황이 생겼다. 아래 글은 Ubuntu 16.04LTS를 기준으로 작성되었다



설치하기

우선 openssh-server라는 프로그램이 설치되어 있어야 한다.

$ sudo apt-get install openssh-server

나의 환경에서는 이미 설치가 되어있었다. 이 상태에서 이제 내가 원하는 계정을 생성해보자. (이미 있다면 계정 생성은 패스해도 된다.)



계정 생성하기

$ sudo adduser guest

Ubuntu에 계정을 생성 및 비밀번호를 설정하고, 이 계정이 특정 폴더 외의 다른 폴더는 접근하지 못하도록 막아보겠다.



sftp 설정 바꾸기

$ vi /etc/ssh/sshd_config

그리고 다음 부분을

Subsystem sftp /usr/lib/openssh/sftp-server

다음과 같이 바꾼다

Subsystem sftp internal-sftp

그리고 파일의 마지막 부분에 다음 코드를 넣는다

Match Group filetransfer
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

그리고 ssh 데몬을 재시작한다

$ service ssh restart


계정에 대한 권한 설정하기

제한을 걸 유저를 포함시킬 그룹을 생성한다

$ sudo addgroup --system filetransfer

그리고 그 그룹안에 넣자

usermod -G filetransfer guest
chown root:root /home/guest
chmod 755 /home/guest

여기서 guest부분을 당신이 정한 유저명으로 바꾸면 된다.
이제 생성한 폴더(request)에 대해 이 계정이 쓰기 권한을 갖게 해보자!

cd /home/guest
mkdir request respond
chown guest:filetransfer request

이렇게 하면 /, /respond 두 폴더는 쓰기권한이 없고 보기권한만 있는 상태가 되고 /request 폴더에 쓰기 권한이 주어진다. 아래 코드 부분이 filetranfer 그룹에 권하는 주는 부분이기 때문에 꼭 이해하자

chown guest:filetransfer request



출처: https://itncode.tistory.com/95 [IT & CODE 이야기]

반응형

+ Recent posts