[Linux-CMD] ps 명령어 유용한 옵션 정리

PS

-e : 모든 프로세스를 보여줌
-f : 프로세스의 자세한 정보를 보여줌
-F : 프로세스의 더욱 자세한 정보를 보여줌
--no-header: 헤더 (UID   PID  TTY 등)없이 보여줌
-C <name> : <name> 프로세스의 정보를 보여줌
-o <pid | tty … > : 해당 열에 해당하는 정보만을 보여줌
-u/-U <user or uid> : <user or uid>가 실행중인 프로세스를 보여줌

 

Ex)

syslogd 프로세스 pid만을 가져오고 싶다면:
ps -C syslogd -o pid= (-o 옵션 뒤에 ‘=’이 붙게되면 –no-header 옵션이 적용된다.)

PID가 42인 프로그램 이름만 출력하려면:
ps -p 42 -o comm=

BSD 방법을 사용해서 시스템의 모든 프로세스를 출력:
ps ax
ps axu

프로세스를 트리형식으로 출력:
ps -ejH
ps axjf

스레드 정보:
ps -eLf
ps axms

보안 정보:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM

사용자 형식으로 모든 root(real & effective ID)로 실행중인 프로세스를 보려면:
ps -U root -u root u
-U : real UID
-u : effective UID

 

 

[Ubuntu] Systemd Service 등록

우분투 service 등록16.04 기준


  1. 서비스 파일 작성

    # vi /etc/systemd/system/<myservice>.service[doc]

    Ex “<myservice>.service”

    [Unit]
    Description=Poratiner Service
    Requires=docker.service
    After=docker.service
    
    [Service]
    Type=simple
    ExecStart=/opt/portainer/portainer
    
    [Install]
    WantedBy=default.target
  2. 작성한 서비스 활성화

    # systemctl enable <myservice>

  3. 서비스 시작
    # systemctl start <myservice> 
    or
    # service <myservice> start

 


[Unit]

Description=
해당 유닛에 대한 상세한 설명을 포함한다.
Requires=
상위 의존성을 구성한다. 필요 조건으로서, 이 목록이 포함하는 유닛이 정상적일 경우 유닛이 시작된다.
Before=, After=
유닛 시작의 전후 관계를 설정한다. 해당 설정은 “Requires=” 설정과는 독립적이다. “Before=” 에 나열된 유닛이 시작되기 전에 실행하고 “After=” 은 해당 유닛이 시작된 이후 나열된 유닛이 실행한다. 시스템 종료 시에는 반대 순서로 동작한다.

 

[Service]

Type=[simple|forking|oneshot|notify|dbus]
유닛 타입을 선언한다.

  • “simple” (기본값) – 유닛이 시작된 경우 즉시 systemd는 유닛의 시작이 완료됐다고 판단한다. 다른 유닛과 통신하기 위해 소켓을 사용하는 경우 이 설정을 사용하면 안된다.
  • “forking” – 자식 프로세스 생성이 완료되는 단계까지를 systemd가 시작이 완료되었다고 판단하게 된다. 부모 프로세스를 추적할 수 있도록 PIDFile= 필드에 PID 파일을 선언해 주어야 한다.
  • “oneshot” – “simple” 과 다소 유사하지만 단일 작업을 수행하는데 적합한 타입이다. 또한 실행 후 해당 실행이 종료되더라도 RemainAfterExit=yes 옵션을 통해 유닛을 활성화 상태로 간주할 수 있다.
  • “notify” – “simple” 과 동일하다. 다만 유닛이 구동되면 systemd에 시그널을 보낸다. 이때 시그널에 대한 내용은 libsystemd-daemon.so에 선언되어 있다.
  • “dbus” – D-Bus에 지정된 BusName 이 준비될 때까지 대기한다. 다시 말해서, D-Bus가 준비된 후에 유닛이 시작되었다고 간주한다.
ExecStart=
시작 명령을 정의한다. 실행 명령어는 반드시 절대 경로 또는 변수(${STRINGS}와 같이)로 시작해야 하며, 다중 명령어를 지원한다. 예제는 아래와 같다.
ExecStart=”commnad1″
ExecStart=”command2″
ExecStart=”command3″
혹은 ExecStart=”command1; command2; command3″

[Install]

WantedBy=, RequiredBy=
“systemctl enable” 로 유닛을 등록할 때 등록에 필요한 유닛을 지정한다. 해당 유닛을 등록하기 위한 종속성 검사 단계로 볼 수 있다. 따라서 해당 설정은 [Unit] 섹션의 “Wants=” 와 “Requires=” 옵션과 관계 있다.

 

더 많은 옵션들 : http://www.potatogim.net/wiki/Systemctl

 

[apt-get] 우분투 repository(저장소) 변경하기

[apt-get] 우분투 repository(저장소) 변경하기

방법 1. vim으로 직접 접근하여 변경

sudo vi /etc/apt/sources.list

아래 vim 명령 입력

:%s/kr.archive.ubuntu.com/mirror.kakao.com/g
:%s/security.ubuntu.com/mirror.kakao.com/g
:%s/extras.ubuntu.com/mirror.kakao.com/g

방법 2. sed 명령어를 사용해 변경

sed -i 's/kr.archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list
sed -i 's/extras.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list

>> Docker 파일 만들때 RUN이나, CMD로 하면 편리할듯.

[SSH] ssh 자동으로 끊길 때

방법 1. 환경변수 TMOUT 삭제

[email protected]:# env | grep TMOUT을 입력했을때 값이 출력된다면,
[email protected]:# unset TMOUT을 통해 삭제 하면된다.

 

방법 2. sshd_config 수정

[email protected]:# vi /etc/ssh/sshd_config에서 ClientAliveInterval 0으로 바꿔주고,
service sshd restart를 통해 ssh 데몬을 재시작 한다.

참고로
ClientAliveInterval는 클라이언트가 살아있는지 확인하는 간격(초)이고
ClientAliveCountMax는 클라이언트가 살아있지 않아도 응답하는 횟수 이다. 
따라서 ssh연결이 활성화 되있는 시간은 ClientAliveIntervalClientAliveCountMax이다.

[Linux] Ubuntu chrome 설치

Ubuntu 크롬 설치


Commend

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt-get install -y libxss1 libgconf2-4 libappindicator1 libindicator7
sudo dpkg -i google-chrome-stable_current_amd64.deb

How to execute?

chrome ubuntu에 대한 이미지 검색결과

만약 Chrome이 보이지 않는다면?

wget으로 다운 받은 “google-chrome-stable_current_amd64.deb”파일 직접 실행
 

> OR
  Ubuntu Software Center에서 “Chromium”을 검색해 설치