-
Notifications
You must be signed in to change notification settings - Fork 21
シェルスクリプトやインタプリタ型言語でエンジンを実行したい方へ
Kubo, Ryosuke edited this page Sep 22, 2024
·
10 revisions
インタプリタ型言語で記述されたエンジン、あるいはシェルスクリプト経由でエンジンを実行する場合にエンジンを登録できない(実行できない)というお問い合わせを複数頂いています。
Linux や MacOS の場合、以下の条件をみたすことが必要です。
- シバン (Shebang) を正しく記述していること
- シバンとはテキストファイルの先頭に記述する
#!
で始まる命令です。 - シェルスクリプトを
/bin/bash
で実行したい場合には#!/bin/bash
と書きます。 - Python であれば
#!/usr/bin/env python
が一例です。 - よくある間違いとして、環境変数の設定が反映できていないケースがあります。 Issue #231 も参考にしてください。
- シバンとはテキストファイルの先頭に記述する
- 実行権限が付与されていること
- 例えば
chmod +x ファイル名
等で実行権限を付与します。(この例だと全てのユーザーが対象になります。) - 権限がついているかどうかは例えば
ls -l
で確認できます。
- 例えば
Windows の場合は拡張子 .exe
.cmd
.bat
に対応しています。
将棋所の古いバージョンでは、テキストファイルに対して無条件に Bash を実行していました。 しかし、これはファイルの実行権限や拡張子を無視したセキュリティ的に好ましくない実装です。 将棋所の掲示板で指摘があり、新しいバージョンでは確認画面が追加されたものの、依然として実行権限を無視しています。
ShogiHome では標準的な方法で子プロセスを実行しているため、 OS で推奨されている方法でスクリプトを設定してください。