はい、簡単にできます。
FOVE Runtime (FOVE Serviceとも呼ばれます)は通常のWindowsサービスなので、OS標準の方法で起動・停止や有効化・無効化ができます。サービスの名前はFoveRuntimeです。
実際、FOVE Debug ToolやFOVE Tray Applicationは、内部でFoveRuntimeサービスを起動・停止しているだけです。
標準コマンドが使えます。
Start-Service FoveRuntime
Stop-Service FoveRuntime
Get-Service FoveRuntime
System.ServiceProcess.dllのSystem.ServiceProcess namespace内の関数を利用できます。ご利用のプロジェクト内で当該アセンブリへの参照を追加するのを忘れないようご注意ください。
using System.ServiceProcess;
using System.Threading;
namespace MyApp
{
class Program
{
static void Main(string[] args)
{
ServiceController service = new ServiceController("FoveRuntime");
// Wait until the service is stopped
// Beware of infinite loop, may want to add a timeout
if (!service.Status.Equals(ServiceControllerStatus.Stopped))
{
service.Stop();
Thread.Sleep(200);
}
// Start the service again
service.Start();
}
}
}
fove-serviceは、単なる実行可能ファイルなので、任意の方法で起動することができます。 また、各種POSIXシグナルも無視せず受け取るので、必要に応じてプロセスを直接殺して頂くことも可能です。 なお、fove-serviceをroot権限で実行することはおすすめしません。一般ユーザで、sudo権限無しでご起動下さい。
仮想端末からfove-serviceを(フォアグラウンドで)起動された場合、Ctrl+Cを押すことでプロセスを停止することができます。 また、fove-serviceのプロセスIDを探して頂ければ、別の端末やプロセスからもプロセスを停止することができます。
fove-service
kill `pidof fove-service`
FOVEは標準でsystemd
サポートと共に配布されていますので、標準的なsystemd
コマンドでサービスの起動・停止を行うことができます。
systemctl --user start fove-service
systemctl --user stop fove-service
systemctl --user status fove-service