Skip to main content

AQUA_X_SYS_EXEC

aqua >= v2.5.0

#710 #729 #1597 #1925

caution

In Windows this feature doesn't work. In Windows, aqua creates small shell scripts and bat scripts instead of aqua-proxy and symbolic links. And Windows doesn't support execve(2), so the environment variable AQUA_X_SYS_EXEC is ignored.

When a command x is executed via aqua, the command is executed as the following.

  1. $AQUA_ROOT_DIR/bin/x: symbolic link to aqua-proxy
  2. aqua-proxy executes the command aqua exec -- x
  3. aqua executes x

So the command x is executed via aqua-proxy and aqua. Until aqua v2.5.0, aqua-proxy and aqua executed commands as subprocess. You can confirm it by checking the process tree by pstree command.

e.g.

$ nvim # nvim is managed by aqua
$ pstree -s nvim
     \-+= 00719 shunsukesuzuki -zsh
\-+= 09955 shunsukesuzuki nvim # aqua-proxy
\-+- 09956 shunsukesuzuki aqua exec -- nvim
\--- 09957 shunsukesuzuki /Users/shunsukesuzuki/.local/share/aquaproj-aqua/pkgs/github_release/github.com/neovim/neovim/v0.7.0/nvim-macos.tar.gz/nvim-osx64/bin/nvim
aqua-proxy -> aqua -> x

Sometimes this behaviour caused trouble. #710 #1597

From aqua v2.5.0, aqua-proxy and aqua execute commands by execve(2) in Linux and macOS by default.

So extra subprocess isn't raised.

     \-+= 82315 shunsukesuzuki -zsh
\-+= 82630 shunsukesuzuki nvim

If you feel aqua becomes unstable due to this feature, you can disable this feature by the environment variable AQUA_X_SYS_EXEC.

export AQUA_X_SYS_EXEC=false