シンプル・使えるもの第一
手間をかけずに開始スクリプトが必要な場合は、このupstart
サービスを使用できます。対応するマニュアルページと/etc/init/*.conf
例を参照してください。このようなプロセスを作成した後、呼び出してサーバーを起動できます
service myserver start
特定の制限や権限管理など、より多くの機能が必要な場合は、 を試すことができますxinetd
。
シェルの使用
次のようにプロセスを開始できます。
nohup ./myexecutable &
は&
、コマンドをバックグラウンドで開始し、ジョブ リストに保持するようにシェルに指示します。一部のシェルでは、HANGUP シグナルを使用して親シェルが終了すると、ジョブが強制終了されます。これを防ぐnohup
には、 HANGUP シグナルを破棄するコマンドを使用してコマンドを起動できます。
ただし、呼び出されたプロセスが HANGUP シグナルを再接続する場合、これは機能しません。
本当に確実にするには、シェルのジョブリストからプロセスを削除する必要があります。よく知られている 2 つのシェルの場合、これは次のように実現できます。
バッシュ:
./myexecutable &
disown <pid>
zsh:
./myexecutable &!
バックグラウンド ジョブを強制終了する
通常、シェルはプロセスの PID を出力します。このプロセスは、kill
コマンドを使用して強制終了し、サーバーを停止できます。シェルが PID を出力しない場合は、次を使用して取得できます
echo $!
実行直後。これにより、フォークされたプロセスの PID が出力されます。