Skip to content

pty付きで起動したジョブが即座に終了してしまうことがある #1158

Closed
@ichizok

Description

@ichizok

質問・報告の内容

pty: 1 かつ out_ioerr_iofile または null の設定でジョブを起動すると、ジョブが即座に終了する。

vim --clean

call term_start('sleep 10', {'out_io':'null', 'err_io':'null'})

OSの種類/ディストリ/バージョン

unix系OS

原因

channel の out と err が両方とも閉じられると、その後 in も閉じられる。
out_ioerr_iofile または null のとき、これらのfdは直接ジョブのプロセスにつながる (Vimはハンドリングしない) ので、channel の out と err はどちらも閉じられた状態で起動する。
よって、すぐ in が閉じられるが、in が pty のときは in はプロセスの制御端末であるため、閉じた時点でカーネルからプロセスにSIGHUPが送られる。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions