有馬総一郎のブログ

(彼氏の事情)

2020年05月23日 07:22:58 JST - 3 minute read - Windows

Windowsサービスにgoogle-ime-skk-pyを登録したが起動せず(未解決)

google-ime-skk-py · PyPI

Google IME SKK Server についてググると Rust, Rubyだけではなく、Pythonで書かれたものがあった。これなら、Windowsでも動くんじゃないかと思ってインストールしてみた。

>pip install google-ime-skk-py
Collecting google-ime-skk-py
  Downloading https://files.pythonhosted.org/packages/36/da/5127631530958ca036204ef8e4d65bc45e033e4d7f950ce932b1e41a1795/google_ime_skk_py-0.0.2-py2.py3-none-any.whl
Installing collected packages: google-ime-skk-py
Successfully installed google-ime-skk-py-0.0.2
WARNING: You are using pip version 19.2.3, however version 20.1.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

ちなみにpython -m pip install --upgrade pipを実行してもうんともすんとも言わない。試しにpythonと叩くとMicrosoft Storeが起動してpython3.8の入手画面が表示される…なんでだ、と思い。 PATH を確認。

>where python
C:\Users\arimasou16\AppData\Local\Microsoft\WindowsApps\python.exe
C:\Users\arimasou16\AppData\Local\Programs\Python\Python37\python.exe

と入れた覚えのない%USERPROFILE%\AppData\Local\Microsoft\WindowsAppsのPATHがある。Microsoft Storeアプリ内で使っているPythonだろうか?良く分からないので、順番を変えて%USERPROFILE%\AppData\Local\Programs\Python\Python37を先にすることで、pythonと叩いてpythonが起動するようになった。

で、早速、google-ime-skk-pyをWindowsの起動時に実行されるようにしたいと思い、以下のサイトを参考にサービス登録する。いやあ、bat作ってシステムでタスクスケジュール登録するとか、shell:startupのフォルダにショートカットを置く必要がないんですね…

ちょっと、やったこと/思うこと: google-ime-skkをWindowsのサービスに登録してeskk.vimで使う

>sc create google-ime-skk-py binPath= "%USERPROFILE%\AppData\Local\Programs\Python\Python37\Scripts\google-ime-skk-py.exe" DisplayName= "google-ime-skk" start= delayed-auto

[SC] CreateService SUCCESS

>sc description google-ime-skk-py description= "Google IME SKK Server written in Python"
[SC] ChangeServiceConfig2 SUCCESS

descriptionは作成と同時にはできないらしい… sc description TestService1 "TestService1" 一応、遅延実行にした。

管理者権限で実行しないと怒られる。

>sc create google-ime-skk-py binPath= "%USERPROFILE%\AppData\Local\Programs\Python\Python37\Scripts\google-ime-skk-py.exe" DisplayName= "google-ime-skk" start= delayed-auto
[SC] OpenSCManager FAILED 5:

サービス削除はこう

>sc delete google-ime-skk-py
[SC] DeleteService SUCCESS

他のWindowsサービスの起動停止コマンドなど Windowsサービスをコマンドで起動・停止、自動起動無効化・有効化する方法 | あいしんくいっと

>sc query google-ime-skk-py

SERVICE_NAME: google-ime-skk-py
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 1077  (0x435)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

Windowsサービスの起動(手動)

sc config "google-ime-skk-py"

Windowsサービスの自動起動(手動)

sc config "google-ime-skk-py" start= demand

自動起動停止

sc config "google-ime-skk-py" start= disabled

とここまでやっておいてのオチだが、google-ime-skk サービスの接続を待機中にタイムアウト (30000 ミリ秒) になりました。となって起動中から停止になってしまう…Windows Defenderでプライベート、パブリックを許可にしても駄目。うーん、ruby版はバージョン変えたら上手くいったとかある。 python版も 3.6.6 で動作確認したとある。Windows環境は 3.7.6

Manjaro 20.0.1 Gnome 3.36.2 Edition のPython 3.8.2 だと上手くいったので、バージョンの問題というよりはOSの問題かなと思って、諦めた。