memo: yaskkserv2 をUbuntu 24.04で使う手順
17 March 2026
memo: yaskkserv2 をUbuntu 24.04で使う手順
SKKを使いつつ、新語や合成語の変換にはGoogleサジェストを使いたい。 そのようなときにyaskkserv2を使ってみてなかなか良かった。以下はmacos用の記事。
なかなか良かったので、Ubuntuでも使えるようにセットアップしてみた。以下はそのメモ
Rustのセットアップ(もしされていなければ)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
yaskkserv2をclone、ビルド、インストール
git clone https://github.com/wachikun/yaskkserv2.git
cd yaskkserv2
cargo build --release
sudo cp -av target/release/yaskkserv2 /usr/sbin/
sudo cp -av target/release/yaskkserv2_make_dictionary /usr/bin/
SKK辞書を取得、辞書作成
mkdir -p $HOME/dic
wget http://openlab.ring.gr.jp/skk/skk/dic/SKK-JISYO.L
yaskkserv2_make_dictionary --dictionary-filename=$HOME/dic/dictionary.yaskkserv2 SKK-JISYO.L
yaskkserv2 をsystemdユーザーサービスとして自動起動する手順
Ubuntu 24.04でyaskkserv2をユーザーログイン時に自動起動し、常駐させる設定手順。
1. systemdユーザーサービスディレクトリを作成
mkdir -p ~/.config/systemd/user
2. サービスファイルを作成
vi ~/.config/systemd/user/yaskkserv2.service
以下の内容を記述:
[Unit]
Description=yaskkserv2 Japanese input server
After=network.target
[Service]
Type=simple
ExecStart=/usr/sbin/yaskkserv2 --no-daemonize --google-suggest %h/dic/dictionary.yaskkserv2
Restart=always
RestartSec=3
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=default.target
重要ポイント:
--no-daemonize: systemdがプロセスを管理するため、デーモン化しない%h: ホームディレクトリに自動展開されるType=simple: フォアグラウンドで実行Restart=always: プロセス終了時に自動再起動
3. systemdに設定を読み込ませる
systemctl --user daemon-reload
4. サービスを起動
systemctl --user start yaskkserv2.service
5. 起動状態を確認
systemctl --user status yaskkserv2.service
以下のように表示されればOK:
● yaskkserv2.service - yaskkserv2 Japanese input server
Loaded: loaded (...)
Active: active (running) since ...
Main PID: xxxxx (yaskkserv2)
エラーがある場合はここにログが出るはず。
プロセスも確認:
ps aux | grep yaskkserv2
ddskkなどのクライアントで実際に動作確認してみる。 絶対に辞書に登録されていなさそうな新語を変換してみるとよい。
6. ログイン時の自動起動を有効化
systemctl --user enable yaskkserv2.service
確認:
systemctl --user is-enabled yaskkserv2.service
# => enabled と表示される
管理コマンド
# サービスを停止
systemctl --user stop yaskkserv2.service
# サービスを再起動
systemctl --user restart yaskkserv2.service
# 自動起動を無効化
systemctl --user disable yaskkserv2.service
# ログを確認
journalctl --user -u yaskkserv2.service -f
# 過去50件のログを表示
journalctl --user -u yaskkserv2.service -n 50 --no-pager
トラブルシューティング
エラーコード 203/EXEC が出る場合
which yaskkserv2でパスを確認し、ExecStartのパスを修正- フルパスで指定する(
~や変数は使わない)
サービスがすぐ終了する場合
--no-daemonizeオプションを追加- ログで原因を確認:
journalctl --user -u yaskkserv2.service -n 50
辞書ファイルが見つからない場合
- パスが正しいか確認:
ls -la ~/dic/dictionary.yaskkserv2 - サービスファイルのパスを修正して
daemon-reloadを実行
完了
次回ログイン時から自動的にyaskkserv2が起動します(ポート1178で待ち受け)。