제임스딘딘의
Tech & Life

개발자의 기록 노트/Linux

[우분투 16.04] 부팅시 프로그램을 자동으로 시작하도록 설정하는 방법 (How to add auto startup applications in Ubuntu 16.04)

제임스-딘딘 2017. 11. 12. 02:09

프로그램 자동실행 이유

우분투 16.04 이 설치된 PC를 켤때 synergy client를 자동으로 실행되도록 하고 싶다.

지금은 우분투 PC가 켜지면, shell prompt를 띄우고, 명령어를 직접 입력해서 synergy client를 실행시켜 synergy server PC에 연결되도록 수동으로 사용하고 있다.


이 과정이 번거롭기 때문에, 자동화 하고자 한다.


참고로 synergy는 서로다른 2대 이상의 PC를 연결시켜서, 한쌍의 키보드와 마우스를 이용해 연결된 PC 모두를 제어하도록 도와주는 프로그램이다.

본 포스팅에서 설명하고자 하는 것은, 우분투 16.04 PC가 synergy client가 되고, 그외의 PC (윈도우 혹은 Mac 혹은 또다른 우분투)가 synergy server가 되는 상황이다.


auto startup 설정 방법

STEP 1: 프로그램을 실행시키기 위한 커맨드라인 명령어 찾기

우선, 시작 목록에 프로그램을 추가하기 위해서는, 해당 프로그램이 시작되는 명령어를 알아야 한다.


synergy의 경우, synergyc 가 client이다.

--help 옵션을 통해 지원하는 옵션들을 살펴보자.


jeon@Jeon-PC:~$ synergyc --help
Usage: synergyc [--yscroll ] [--display ] [--no-xinitthreads] [--daemon|--no-daemon] [--name ] [--restart|--no-restart] [--debug ] 

Connect to a synergy mouse/keyboard sharing server.

  -d, --debug       filter out log messages with priority below level.
                             level may be: FATAL, ERROR, WARNING, NOTE, INFO,
                             DEBUG, DEBUG1, DEBUG2.
  -n, --name  use screen-name instead the hostname to identify
                             this screen in the configuration.
  -1, --no-restart         do not try to restart on failure.
*     --restart            restart the server automatically if it fails.
  -l  --log          write log messages to file.
      --no-tray            disable the system tray icon.
      --enable-drag-drop   enable file drag & drop.
      --enable-crypto      enable the crypto (ssl) plugin.
      --display   connect to the X server at 
      --no-xinitthreads    do not call XInitThreads()
  -f, --no-daemon          run in the foreground.
*     --daemon             run as a daemon.
      --yscroll     defines the vertical scrolling delta, which is
                             120 by default.
  -h, --help               display this help and exit.
      --version            display version information and exit.

* marks defaults.

The server address is of the form: [][:].  The hostname
must be the address or hostname of the server.  The port overrides the
default port, 24800.

synergyc: a server address or name is required
Try `synergyc --help' for more information.


살펴보니, daemon으로 실행하고, debug level로 DEBUG 정도 줘서 로그좀 남기도록 하면 될 것 같아 보인다.

최종적으로 아래 명령으로 자동 실행 시키기로 결정했다.


/usr/bin/synergyc --daemon --debug DEBUG --name Jeon-PC 192.168.1.121:24800

Jeon-PC 부분은 본인이 사용하려는 'screen name' 을 입력하면 된다.

192.168.1.121 부분은 본인이 연결하려는 synergy server의 IP address를 입력하면 된다.

24800 부분은 본인이 연결하려는 synergy server의 Port number를 입력하면된다.



STEP 2: 시작 프로그램 설정하기

step1 에서 결정한 시작시킬 명령어를 입력할 차례이다.


Dash 메뉴에서 'Startup Applications' 를 찾아서 실행한다. Dash 메뉴는 '윈도우 키' 를 누르거나, sidebar에서 우분투 아이콘 버튼을 누르면 나오는 검색 윈도우를 말한다.




실행된 이후, '추가(Add)' 버튼을 누른 뒤, '명령어(Command)' 부분에 위에서 결정했던 명령어를 복사/붙여넣는다.

이름(Name)과 설명(Commnet) 부분은 아무것이나 입력하고 싶은것을 넣을 수 있다.




모두 입력했으면, '저장(Save)'을 누른 뒤, 입력한 항목이 생겼는지 확인한다.




다음번 우분투 PC를 재시작하게되면, synergy client 프로그램이 자동으로 실행되어, 설정한 IP주소의 synergy server로 연결되는 것을 확인 할 수 있다.


명령어로 확인 방법

이렇게 우분투의 GUI로 추가한 자동 시작 프로그램은 shell terminal 상에서도 확인이 가능하다.


[HOME]/.config/autostart 아래에서 확인해 보면, 추가한 항목이 존재함을 알 수 있다.


jeon@Jeon-PC:~/.config/autostart$ cat synergyc.desktop 
[Desktop Entry]
Type=Application
Exec=\s/usr/bin/synergyc --daemon --debug DEBUG --name Jeon-PC 192.168.1.121:24800
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=Synergy
Name=Synergy
Comment[en_US]=Keyboard & Mouse Sharing
Comment=Keyboard & Mouse Sharing