---
name: "rpgo"
section: "2"
platform: "linux"
package: "lam2-dev"
version: "6.3.2-3"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/rpgo"
---

# rpgo(2)

Create a LAM process on a remote node from tagged storage.

## NAME

rpgo - Create a LAM process on a remote node from tagged storage.

## SYNOPSIS

\#include \<kio.h\>

int rpgo(int node, int loadtag, int flags, int argvtag, int \*pid, int \*idx);

## ARGUMENTS

- node

  where new process will be created

- loadtag

  storage tag for program file

- flags

  runtime flags passed to new process

- argvtag

  storage tag for null-terminated array of strings to be passed as command-line arguments to the new process

- pid

  new process identifier (output)

- idx

  new process index (output)

## DESCRIPTION

The executable program and the argument structure must already be loaded on the target node via the "flat storage" service. The program is typically loaded from a file with [rload(2)](/rload/2.md). The argument structure is assumed to be packed contiguously:  the null terminated array of string pointers followed immediately by the strings themselves. It is typically loaded to the target node with [rflat(2)](/rflat/2.md). The storage tags, *loadtag* and *argvtag*, are erased from the target node after the call to *rpgo()*.

See [rploadgo(2)](/rploadgo/2.md) for valid process runtime flags.

## ERRORS

- EBADTAG

  Either or both of *loadtag* and *argvtag* are invalid.

- ENOPDESCRIPTORS

  The remote process descriptor table is full.

- ENOFLDESCRIPTORS

  The table of strorage blocks (kept by the flat daemon) is full.

## SEE ALSO

[rflat(2)](/rflat/2.md), [rload(2)](/rload/2.md), [rploadgo(2)](/rploadgo/2.md), [rpwait(2)](/rpwait/2.md)
