---
name: "libssh2_channel_process_startup"
section: "3"
platform: "linux"
package: "libssh2"
version: "1.11.1-7"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libssh2_channel_process_startup"
---

# libssh2\_channel\_process\_startup(3)

request a shell on a channel

## NAME

libssh2\_channel\_process\_startup - request a shell on a channel

## SYNOPSIS

```
#include <libssh2.h>
int
libssh2_channel_process_startup(LIBSSH2_CHANNEL *channel,
                                const char *request,
                                unsigned int request_len,
                                const char *message,
                                unsigned int message_len);
```

## DESCRIPTION

*channel* - Active session channel instance.

*request* - Type of process to startup. The SSH2 protocol currently defines shell, exec, and subsystem as standard process services.

*request\_len* - Length of request parameter.

*message* - Request specific message data to include.

*message\_len* - Length of message parameter.

Initiate a request on a session type channel such as returned by **[libssh2\_channel\_open\_ex(3)](/libssh2_channel_open_ex/3.md)**

## RETURN VALUE

Return 0 on success or negative on failure. It returns LIBSSH2\_ERROR\_EAGAIN when it would otherwise block. While LIBSSH2\_ERROR\_EAGAIN is a negative number, it is not really a failure per se.

## ERRORS

*LIBSSH2\_ERROR\_ALLOC* - An internal memory allocation call failed.

*LIBSSH2\_ERROR\_SOCKET\_SEND* - Unable to send data on socket.

*LIBSSH2\_ERROR\_CHANNEL\_REQUEST\_DENIED* -

## SEE ALSO

**[libssh2\_channel\_open\_ex(3)](/libssh2_channel_open_ex/3.md)**
