Start another script on the current server.
Signature:
run(script: string, threadOrOptions?: number | RunOptions, ...args: ScriptArg[]): number;
Parameter | Type | Description |
---|---|---|
script | string | Filename of script to run. |
threadOrOptions | number | RunOptions | (Optional) Either an integer number of threads for new script, or a RunOptions object. Threads defaults to 1. |
args | ScriptArg[] | Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the second argument threadOrOptions must be filled in with a value. |
Returns:
number
Returns the PID of a successfully started script, and 0 otherwise.
RAM cost: 1 GB
Run a script as a separate process. This function can only be used to run scripts located on the current server (the server running the script that calls this function). Requires a significant amount of RAM to run this command.
The second argument is either a thread count, or a RunOptions object that can also specify the number of threads (among other things).
If the script was successfully started, then this functions returns the PID of that script. Otherwise, it returns 0.
PID stands for Process ID. The PID is a unique identifier for each script. The PID will always be a positive integer.
Running this function with 0 or fewer threads will cause a runtime error.
//The simplest way to use the run command is to call it with just the script name. The following example will run ‘foo.js’ single-threaded with no arguments:
ns.run("foo.js");
//The following example will run ‘foo.js’ but with 5 threads instead of single-threaded:
ns.run("foo.js", {threads: 5});
//This next example will run ‘foo.js’ single-threaded, and will pass the string ‘foodnstuff’ into the script as an argument:
ns.run("foo.js", 1, "foodnstuff");