私のソフトウェアの2番目のインスタンスが起動しないようにする

私のソフトウェアの2番目のインスタンスが起動しないようにする

起動時に特定のソフトウェアを実行するためのサービススクリプトを作成しました。手動で実行できないようにソフトウェアを制限するにはどうすればよいですか?

私の言葉は、ソフトウェアがメモリ内に1つのインスタンスしか持てないということです。

私は私のソフトウェアのソースコードを変更したくないので、これを私のために初期化したいと思います。

ベストアンサー1

これはbashスクリプトで動作します。外部ソフトウェアの他のインスタンスが見つかると、スクリプトの実行が中断されます。ここで核心は `pidof' である。

#!/bin/bash

# Abort startup if another instance was found    
pidof /path/to/software.executable > /dev/null && {
  echo Sorry. Only one instance allowed.
  exit
}

または、ロックファイルを使用して実行中のインスタンスを置き換えることができます(つまり、最初に実行中のインスタンスを終了してから実行を許可します)。

ただし、エキスパートユーザーはこのスクリプトをバイパスして外部コマンドを直接呼び出すことができます。

おすすめ記事