dorapon2000’s diary

忘備録的な。セキュリティとかネットワークすきです。

VSCodeで「ターミナル プロセスが起動に失敗しました」

昨日までは普通にVSCode上でシェルが使えてたのに、突然起動に失敗したといってシェルが開かなくなってしまったので、その解決方法を残します。

環境

  • maxOS Big Sur 11.5.2
  • VSCode 1.59.1
  • fish

症状

VSCode上でターミナルを開こうとすると、あるいはデバッグを実行しようとして「ターミナル プロセスが起動に失敗しました: シェル実行可能ファイル "fish" へのパスが存在しません。」と表示されて何も起きません。おそらく、VSCodeを再起動したことで発生しました。

ターミナル プロセスが起動に失敗しました: シェル実行可能ファイル "fish" へのパスが存在しません。

解決方法

VSCodeのsettings.jsonを開いて、以下のように記述しました。VSCodeの再起動もする必要なく、設定後にシェルが正常に起動します。

    "terminal.integrated.defaultProfile.osx": "fish",
    "terminal.integrated.profiles.osx": {
        "fish": {
            "path": "/usr/local/bin/fish",
        },
    },

osxの部分には各OSに相当するものを入れます。

"fish"の2箇所はおそらくラベルで適当に入れました。 pathには自分が使いたいシェルへのパスを指定します。

原因

VSCode3月のアップデートでシェルのパスの指定方法が変わったことが原因のようでした。 そもそも自分はこれまでシェルのパス指定せずに使ってたので、今後は指定する必要が出てきたのかもしれないです。そうだとしたらちょっと不便ですね。。

code.visualstudio.com

terminal.integrated.defaultProfile.{platform}
terminal.integrated.profiles.{platform}

新しく追加された上記の設定でosごとに細かくシェルの設定ができるようになったみたいです。

参考

【VSCode】 "terminal.integrated.shell" is deprecated.【小ネタ】

VSCodeのターミナルの設定の詳細 - Qiita