WSL在0.1.17版本下,不工作。

@Chao_Gu 你好,你这边的 WSL 版本及对应的 distribution 系统版本是啥?方便我们排查一下问题

d原先0.1.16好像是可以的。升级后就进不来了。另外,vscode也是正常的。

@Chao_Gu 删除一下 WSL 机器中的 ~/.qoder-server 文件重新尝试一下,如果仍然存在问题, 麻烦提供一下完整的 WSL 链接日志,位置在 `输出 → Remote:WSL` , 感谢~

还是不行。输出的内容:[Info - 15:11:33.497] Resolving wsl remote authority ‘wsl+ubuntu’ (attemp #1)

[Trace - 15:11:33.500] Running WSL command: wsl.exe --distribution ubuntu – bash -c ’

# Server installation script

TMP_DIR=“${XDG_RUNTIME_DIR:-”/tmp"}"

DISTRO_VERSION=“0.1.17”

DISTRO_COMMIT=“c6fc73669ac638af9b7c3ebf65bfc464c633574b”

DISTRO_QUALITY=“stable”

DISTRO_VSCODIUM_RELEASE=“”

SERVER_APP_NAME=“qoder-server”

SERVER_INITIAL_EXTENSIONS=“”

SERVER_LISTEN_FLAG=“–port=0”

SERVER_DATA_DIR=“$HOME/.qoder-server”

SERVER_DIR=“$SERVER_DATA_DIR/bin/$DISTRO_COMMIT”

SERVER_SCRIPT=“$SERVER_DIR/bin/$SERVER_APP_NAME”

SERVER_LOGFILE=“$SERVER_DATA_DIR/.$DISTRO_COMMIT.log”

SERVER_PIDFILE=“$SERVER_DATA_DIR/.$DISTRO_COMMIT.pid”

SERVER_TOKENFILE=“$SERVER_DATA_DIR/.$DISTRO_COMMIT.token”

SERVER_OS=

SERVER_ARCH=

SERVER_CONNECTION_TOKEN=

SERVER_DOWNLOAD_URL=

LISTENING_ON=

OS_RELEASE_ID=

ARCH=

PLATFORM=

# Mimic output from logs of remote-ssh extension

print_install_results_and_exit() {

echo "8b4e14d44b0f31db0ca71df1: start"

echo "exitCode==$1=="

echo "listeningOn==$LISTENING_ON=="

echo "connectionToken==$SERVER_CONNECTION_TOKEN=="

echo "logFile==$SERVER_LOGFILE=="

echo "osReleaseId==$OS_RELEASE_ID=="

echo "arch==$ARCH=="

echo "platform==$PLATFORM=="

echo "tmpDir==$TMP_DIR=="



echo "8b4e14d44b0f31db0ca71df1: end"

exit 0

}

# Check if platform is supported

PLATFORM=“$(uname -s)”

case $PLATFORM in

Linux)

    SERVER_OS="linux"

    ;;

\*)

    echo "Error platform not supported: $PLATFORM"

    print_install_results_and_exit 1

    ;;

esac

# Check machine architecture

ARCH=“$(uname -m)”

case $ARCH in

x86_64 | amd64)

    SERVER_ARCH="x64"

    ;;

armv7l | armv8l)

    SERVER_ARCH="armhf"

    ;;

arm64 | aarch64)

    SERVER_ARCH="arm64"

    ;;

\*)

    echo "Error architecture not supported: $ARCH"

    print_install_results_and_exit 1

    ;;

esac

# os-release

OS_RELEASE_ID=“$(grep -i ‘\’‘^ID=’\‘’ /etc/os-release 2>/dev/null | sed ‘\’‘s/^ID=//gi’\‘’ | sed ‘\’'s/”//g’\‘’)"

if [[ -z $OS_RELEASE_ID ]]; then

OS_RELEASE_ID="$(grep -i '\\''^ID='\\'' /usr/lib/os-release 2>/dev/null | sed '\\''s/^ID=//gi'\\'' | sed '\\''s/"//g'\\'')"

if \[\[ -z $OS_RELEASE_ID \]\]; then

    OS_RELEASE_ID="unknown"

fi

fi

# Create installation folder

if [[ ! -d $SERVER_DIR ]]; then

mkdir -p $SERVER_DIR

if (( $? > 0 )); then

    echo "Error creating server install directory"

    print_install_results_and_exit 1

fi

fi

SERVER_DOWNLOAD_URL=“$(echo “https://download.qoder.com/server/\${version}/qoder-reh-\${os}-\${arch}-\${version}.tar.gz” | sed “s/\${quality}/$DISTRO_QUALITY/g” | sed “s/\${version}/$DISTRO_VERSION/g” | sed “s/\${commit}/$DISTRO_COMMIT/g” | sed “s/\${os}/$SERVER_OS/g” | sed “s/\${arch}/$SERVER_ARCH/g” | sed “s/\${release}/$DISTRO_VSCODIUM_RELEASE/g”)”

echo “Downloading vscode server from: $SERVER_DOWNLOAD_URL”

# Check if server script is already installed

if [[ ! -f $SERVER_SCRIPT ]]; then

if \[\[ "$SERVER_OS" = "dragonfly" \]\] || \[\[ "$SERVER_OS" = "freebsd" \]\]; then

    echo "Error "$SERVER_OS" needs manual installation of remote extension host"

    print_install_results_and_exit 1

fi



pushd $SERVER_DIR > /dev/null



if \[\[ ! -z $(which wget) \]\]; then

    wget --tries=3 --timeout=10 --continue --no-verbose -O vscode-server.tar.gz $SERVER_DOWNLOAD_URL

elif \[\[ ! -z $(which curl) \]\]; then

    curl --retry 3 --connect-timeout 10 --location --show-error --silent --output vscode-server.tar.gz $SERVER_DOWNLOAD_URL

else

    echo "Error no tool to download server binary"

    print_install_results_and_exit 1

fi



if (( $? > 0 )); then

    echo "Error downloading server from $SERVER_DOWNLOAD_URL"

    print_install_results_and_exit 1

fi



tar -xf vscode-server.tar.gz --strip-components 1

if (( $? > 0 )); then

    echo "Error while extracting server contents"

    print_install_results_and_exit 1

fi



\# Get old commit from product.json and replace with new commit

if \[\[ -f "$SERVER_DIR/product.json" \]\]; then

    OLD_COMMIT=$(grep -o '\\''"commit": \*"\[^"\]\*"'\\'' "$SERVER_DIR/product.json" | cut -d'\\''"'\\'' -f4)

    if \[\[ ! -z "$OLD_COMMIT" \]\]; then

        find "$SERVER_DIR" -type f -exec perl -pi -e "s/$OLD_COMMIT/$DISTRO_COMMIT/g" {} +

    fi

fi

\# Rename all files containing '\\''codium'\\'' in bin directory

find "$SERVER_DIR/bin" -type f -name "\*codium\*" | while read file; do

    new_name=$(echo "$file" | sed '\\''s/codium/qoder/g'\\'')

    mv "$file" "$new_name"

done



if \[\[ ! -f $SERVER_SCRIPT \]\]; then

    echo "Error server contents are corrupted"

    print_install_results_and_exit 1

fi



rm -f vscode-server.tar.gz



popd > /dev/null

else

echo "Server script already installed in $SERVER_SCRIPT"

fi

# Try to find if server is already running

if [[ -f $SERVER_PIDFILE ]]; then

SERVER_PID="$(cat $SERVER_PIDFILE)"

SERVER_RUNNING_PROCESS="$(ps -o pid,args -p $SERVER_PID | grep $SERVER_SCRIPT)"

else

SERVER_RUNNING_PROCESS="$(ps -o pid,args -A | grep $SERVER_SCRIPT | grep -v grep)"

fi

if [[ -z $SERVER_RUNNING_PROCESS ]]; then

if \[\[ -f $SERVER_LOGFILE \]\]; then

    rm $SERVER_LOGFILE

fi

if \[\[ -f $SERVER_TOKENFILE \]\]; then

    rm $SERVER_TOKENFILE

fi



touch $SERVER_TOKENFILE

chmod 600 $SERVER_TOKENFILE

SERVER_CONNECTION_TOKEN="6c0267e1-475d-4725-b33b-a4b27839d614"

echo $SERVER_CONNECTION_TOKEN > $SERVER_TOKENFILE



$SERVER_SCRIPT --start-server --host=127.0.0.1 $SERVER_LISTEN_FLAG $SERVER_INITIAL_EXTENSIONS --connection-token-file $SERVER_TOKENFILE --telemetry-level off --use-host-proxy --disable-websocket-compression --without-browser-env-var --enable-remote-auto-shutdown --accept-server-license-terms &> $SERVER_LOGFILE &

echo $! > $SERVER_PIDFILE

else

echo "Server script is already running $SERVER_SCRIPT"

fi

if [[ -f $SERVER_TOKENFILE ]]; then

SERVER_CONNECTION_TOKEN="$(cat $SERVER_TOKENFILE)"

else

echo "Error server token file not found $SERVER_TOKENFILE"

print_install_results_and_exit 1

fi

if [[ -f $SERVER_LOGFILE ]]; then

for i in {1..5}; do

    LISTENING_ON="$(cat $SERVER_LOGFILE | grep -E '\\''Extension host agent listening on .+'\\'' | sed '\\''s/Extension host agent listening on //'\\'')"

    if \[\[ -n $LISTENING_ON \]\]; then

        break

    fi

    sleep 0.5

done



if \[\[ -z $LISTENING_ON \]\]; then

    echo "Error server did not start sucessfully"

    print_install_results_and_exit 1

fi

else

echo "Error server log file not found $SERVER_LOGFILE"

print_install_results_and_exit 1

fi

# Finish server setup and keep script running

if [[ -z $SERVER_RUNNING_PROCESS ]]; then

echo "8b4e14d44b0f31db0ca71df1: start"

echo "exitCode==0=="

echo "listeningOn==$LISTENING_ON=="

echo "connectionToken==$SERVER_CONNECTION_TOKEN=="

echo "logFile==$SERVER_LOGFILE=="

echo "osReleaseId==$OS_RELEASE_ID=="

echo "arch==$ARCH=="

echo "platform==$PLATFORM=="

echo "tmpDir==$TMP_DIR=="



echo "8b4e14d44b0f31db0ca71df1: end"



echo "8b4e14d44b0f31db0ca71df1: Server installation script done"



SERVER_PID="$(cat $SERVER_PIDFILE)"

SERVER_RUNNING_PROCESS="$(ps -o pid,args -p $SERVER_PID | grep $SERVER_SCRIPT)"

while \[\[ -n $SERVER_RUNNING_PROCESS \]\]; do

    sleep 300;

    SERVER_RUNNING_PROCESS="$(ps -o pid,args -p $SERVER_PID | grep $SERVER_SCRIPT)"

done

else

print_install_results_and_exit 0

fi