QtWebAppを使用して独自のサーバーを作成しました。
ここで、systemdを使用してUbuntu 15.10ブートでこのサーバーを起動したいと思います。
このサービスファイルを作成しました。
[Unit]
Description=This service maintains a landports server...
After=syslog.target
Wants=network-online.target
After=network.target network-online.target
[Service]
Type=forking
ExecStart=~/LandportsServer
Restart=on-abort
[Install]
WantedBy=multi-user.target
私が走るときsudo systemctl start landports
システム出力systemd Loaded: error (Reason: Invalid argument)
サービスファイルを次のように変更しました。
[Unit]
Description=This service maintains a landports server...
[Service]
Type=forking
ExecStart= /home/wbmanager/LandportsServer
[Install]
WantedBy=multi-user.target
しかし、私が走るときsudo systemctl start landports
何も起こらず、出力も表示されません。ブラウザを使用してサーバーに接続しようとすると、接続が失敗し、サーバーは実行されません。
以前これを実行してサーバーをテストしました。SSH効果があるしかし、サービスとして実行することはできません。
システム出力を待ってから:
Jan 04 22:57:25 yassermyweb LandportsServer[4902]: Pattern handler and tokens: HttpRequestHandler(0x1018790) ("recent", ":portID")
Jan 04 22:57:25 yassermyweb LandportsServer[4902]: added pattern for path: recent/:portID
Jan 04 22:57:25 yassermyweb LandportsServer[4902]: RootHandler 0xffe820: registering handlers...
Jan 04 22:57:25 yassermyweb LandportsServer[4902]: Pattern handler and tokens: HttpRequestHandler(0x10183a0) ("")
Jan 04 22:57:25 yassermyweb LandportsServer[4902]: added pattern for path:
Jan 04 22:57:25 yassermyweb LandportsServer[4902]: HttpListener: Listening on port 0
Jan 04 22:58:55 yassermyweb systemd[1]: landports.service: Start operation timed out. Terminating.
Jan 04 22:58:55 yassermyweb systemd[1]: Failed to start This service maintains a landports server from the point the system is started until it is shut down again..
Jan 04 22:58:55 yassermyweb systemd[1]: landports.service: Unit entered failed state.
Jan 04 22:58:55 yassermyweb systemd[1]: landports.service: Failed with result
'timeout'.
気づく行は次から始まります。モードハンドラとトークン: HttpRequestHandler(0x1018790)("最新", ":portID")
mu=y サーバーの出力です。
答え1
問題はExecStart=~/LandportsServer
。代わりに絶対パスを使用してください。 systemdではどのホームディレクトリを使用する必要がありますか?ルートとして実行されます。
Type=forking
別の問題は、サービスをに変更Type=simple
(またはその行をコメントアウト)したことです。