2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

systemdを使ってsynergycを自動起動する

Last updated at Posted at 2018-03-14

前提環境

  • OSはCentOS7。デスクトップ環境。ターミナルも使用します。
  • この記事では Synergy のクライアントをサービスとして自動起動させます。が、他のもの(自作のシェルなど)も同様の方法でサービス化出来ます
SynergyとはSynergyは異なるPC間でマウスとキーボードを共有できるソフトです。例えばWindowsPCに接続したマウスとキーボードを使って、WindowsPCとCentOSのPCの画面を行き来して操作出来ます。WindowsPCのSynergyは自動起動してくれますが、CentOSでは自動起動してくれないっぽいので、今回systemctlを使って自動起動させます。

手順

1. サービス(synergyc)起動のコマンドラインを確認する

今回はsynergy(のクライアント)を自動起動するので、synergyをGUIで起動して起動オプションを確認、それをコンソールで実行してsynergyが動作するか確認しました。

デスクトップのアプリケーション→アクセサリ→Synergy で起動。

ps -ef|grep synergy
steam     7046     1  0 10:04 ?        00:00:00 synergy
steam     7053  7046  0 10:04 ?        00:00:00 /usr/bin/synergyc -f --no-tray --debug INFO --name DG33FB 192.168.112.20:24800
steam     7062  2868  0 10:04 pts/1    00:00:00 grep --color=auto synergy

これでsystemdに登録するコマンドラインがわかりました。
※ちなみに、今回 synergy のクライアントを設定するのでsynergyではなくsynergy"c"を設定します

2. 設定ファイルを書く

設定ファイルをunitと言うらしいです。
sudo vi /usr/lib/systemd/system/synergyc.service
sudo vi /etc/systemd/system/synergyc.service
を実行し下記を記述します。

[Unit]
Description = Synergy_client

[Service]
ExecStart=/usr/bin/synergyc -f --no-tray --debug INFO --name DG33FB 192.168.112.20:24800
Restart=always
Type=simple

[Install]
#WantedBy=graphical.target
WantedBy=multi-user.target
  • 全体的に、=の前後の空白はあってもなくてもよい。
  • #でコメントアウト出来るっぽい
  • Description ←説明。なんか適当で良い。空白あっても大丈夫
  • ExecStart ←起動(自動起動)のコマンド。ここに1.で調べたコマンドを記述する
  • Restart ← synergyが落ちた時も自動起動させる。必須ではない(Synergyはそうそう落ちないと思う)が設定しておく。
  • Type ←「ユニットプロセスの起動タイプ」だそうです。詳細
  • WantedBy ←multi-user.target で従来のランレベル3、graphical.target でランレベル5で起動するらしい。けど違いはわかりませんでした。
  • ファイルのパーミッションは 644

そして、下記コマンドでsystemdに反映させます。

systemctl daemon-reload

※初回はエラーになるかも?

3. 設定確認

自動起動させる前に、ステータス確認、手動起動・停止、自動起動設定・無効設定を行って正常に動作するか確認します。

コマンド一覧

  • systemctl status synergyc.service ←ステータス確認
  • systemctl start synergyc.service ←手動起動
  • systemctl stop synergyc.service ←停止
  • systemctl enable synergyc.service ←自動起動設定
  • systemctl disable synergyc.service ←自動起動無効設定

※毎回 synergyc.service と入力するのは大変ですが、synまで入力してTABキーを押すと補完されて楽です。

####ステータス表示確認

$ systemctl status synergyc.service
● synergyc.service - Synergy client
   Loaded: loaded (/usr/lib/systemd/system/synergyc.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

1つ目の disabled =自動起動が無効
inactive (dead) = synergyc 停止

####手動起動

systemctl start synergyc.service

ステータスを確認します

$ systemctl status synergyc.service
● synergyc.service - Synergy client
   Loaded: loaded (/usr/lib/systemd/system/synergyc.service; disabled; vendor preset: disabled)
   Active: active (running) since 水 2018-03-14 10:49:48 JST; 7s ago
 Main PID: 2810 (synergyc)
   CGroup: /system.slice/synergyc.service
           └─2810 /usr/bin/synergyc -f --no-tray --debug INFO --name DG33FB 192.168.112.20:24800

active (running) になり、起動しました

####停止

$ systemctl stop synergyc.service
$ systemctl status synergyc.service
● synergyc.service - Synergy client
   Loaded: loaded (/usr/lib/systemd/system/synergyc.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

inactive (dead) になり、停止しました

####自動起動設定

$ systemctl enable synergyc.service
Created symlink from /etc/systemd/system/multi-user.target.wants/synergyc.service to /usr/lib/systemd/system/synergyc.service.
$ systemctl status synergyc.service
● synergyc.service - Synergy client
   Loaded: loaded (/usr/lib/systemd/system/synergyc.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 水 2018-03-14 11:12:47 JST; 4s ago
 Main PID: 3096 (code=exited, status=0/SUCCESS)

enabled になりました。これで自動起動するはず

####自動起動無効設定

$ systemctl disable synergyc.service
Removed symlink /etc/systemd/system/multi-user.target.wants/synergyc.service.
$ systemctl status synergyc.service
● synergyc.service - Synergy client
   Loaded: loaded (/usr/lib/systemd/system/synergyc.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

disabled になりました。自動起動無効となりました

##4. 修正 「3. 設定確認」のコマンド群がうまく動作しなかった場合、「2. 設定ファイルを書く」からやり直します(ファイル修正)。

##5. 自動起動確認

  1. 前章の「自動起動設定」を行う
  2. サーバーOSを再起動(sudo reboot)
  3. サービス(synergy)の起動確認

サービスが起動していることを確認します。

synergyc の場合下記項目を確認します。

  • ps -ef|grep synergyc で synergc が表示されるか?
  • synergy なので、マウス・キーボードが共有できているか?

気になったこと

  • synergyc の起動が遅い。デスクトップが表示されてからマウスカーソルが移動出来るようになるまで1分近くかかる
  • WantedBy を graphical.target にしても multi-user.target にしても synergy の起動タイミングが変わらないっぽい

参考にした記事

「Systemd」を理解する ーシステム管理編ー | ギークを目指して
Systemd入門(4) - serviceタイプUnitの設定ファイル - めもめも
systemctl, systemd について詳しく解説されています。
9.6. システムのユニットファイルの作成および変更 - Red Hat Customer Portal
公式?

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?