mirror of
https://github.com/denoland/deno.git
synced 2025-01-03 04:48:52 -05:00
feat: Stabilize Deno.kill and Deno.Process.kill (#12375)
Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
This commit is contained in:
parent
ffea0f198c
commit
6ac0337165
5 changed files with 52 additions and 58 deletions
56
cli/dts/lib.deno.ns.d.ts
vendored
56
cli/dts/lib.deno.ns.d.ts
vendored
|
@ -1956,14 +1956,46 @@ declare namespace Deno {
|
|||
stderrOutput(): Promise<Uint8Array>;
|
||||
close(): void;
|
||||
|
||||
/** **UNSTABLE**
|
||||
*
|
||||
* Send a signal to process. This functionality currently only works on
|
||||
* Linux and Mac OS.
|
||||
/** Send a signal to process.
|
||||
*/
|
||||
kill(signo: string): void; // TODO(ry): Use Signal type here once made stable.
|
||||
kill(signo: Signal): void;
|
||||
}
|
||||
|
||||
export type Signal =
|
||||
| "SIGABRT"
|
||||
| "SIGALRM"
|
||||
| "SIGBUS"
|
||||
| "SIGCHLD"
|
||||
| "SIGCONT"
|
||||
| "SIGEMT"
|
||||
| "SIGFPE"
|
||||
| "SIGHUP"
|
||||
| "SIGILL"
|
||||
| "SIGINFO"
|
||||
| "SIGINT"
|
||||
| "SIGIO"
|
||||
| "SIGKILL"
|
||||
| "SIGPIPE"
|
||||
| "SIGPROF"
|
||||
| "SIGPWR"
|
||||
| "SIGQUIT"
|
||||
| "SIGSEGV"
|
||||
| "SIGSTKFLT"
|
||||
| "SIGSTOP"
|
||||
| "SIGSYS"
|
||||
| "SIGTERM"
|
||||
| "SIGTRAP"
|
||||
| "SIGTSTP"
|
||||
| "SIGTTIN"
|
||||
| "SIGTTOU"
|
||||
| "SIGURG"
|
||||
| "SIGUSR1"
|
||||
| "SIGUSR2"
|
||||
| "SIGVTALRM"
|
||||
| "SIGWINCH"
|
||||
| "SIGXCPU"
|
||||
| "SIGXFSZ";
|
||||
|
||||
export type ProcessStatus =
|
||||
| {
|
||||
success: true;
|
||||
|
@ -2481,6 +2513,20 @@ declare namespace Deno {
|
|||
options?: UpgradeWebSocketOptions,
|
||||
): WebSocketUpgrade;
|
||||
|
||||
/** Send a signal to process under given `pid`.
|
||||
*
|
||||
* If `pid` is negative, the signal will be sent to the process group
|
||||
* identified by `pid`.
|
||||
*
|
||||
* const p = Deno.run({
|
||||
* cmd: ["sleep", "10000"]
|
||||
* });
|
||||
*
|
||||
* Deno.kill(p.pid, "SIGINT");
|
||||
*
|
||||
* Requires `allow-run` permission. */
|
||||
export function kill(pid: number, signo: Signal): void;
|
||||
|
||||
/** The type of the resource record.
|
||||
* Only the listed types are supported currently. */
|
||||
export type RecordType =
|
||||
|
|
50
cli/dts/lib.deno.unstable.d.ts
vendored
50
cli/dts/lib.deno.unstable.d.ts
vendored
|
@ -562,41 +562,6 @@ declare namespace Deno {
|
|||
*/
|
||||
export function applySourceMap(location: Location): Location;
|
||||
|
||||
export type Signal =
|
||||
| "SIGABRT"
|
||||
| "SIGALRM"
|
||||
| "SIGBUS"
|
||||
| "SIGCHLD"
|
||||
| "SIGCONT"
|
||||
| "SIGEMT"
|
||||
| "SIGFPE"
|
||||
| "SIGHUP"
|
||||
| "SIGILL"
|
||||
| "SIGINFO"
|
||||
| "SIGINT"
|
||||
| "SIGIO"
|
||||
| "SIGKILL"
|
||||
| "SIGPIPE"
|
||||
| "SIGPROF"
|
||||
| "SIGPWR"
|
||||
| "SIGQUIT"
|
||||
| "SIGSEGV"
|
||||
| "SIGSTKFLT"
|
||||
| "SIGSTOP"
|
||||
| "SIGSYS"
|
||||
| "SIGTERM"
|
||||
| "SIGTRAP"
|
||||
| "SIGTSTP"
|
||||
| "SIGTTIN"
|
||||
| "SIGTTOU"
|
||||
| "SIGURG"
|
||||
| "SIGUSR1"
|
||||
| "SIGUSR2"
|
||||
| "SIGVTALRM"
|
||||
| "SIGWINCH"
|
||||
| "SIGXCPU"
|
||||
| "SIGXFSZ";
|
||||
|
||||
/** **UNSTABLE**: new API, yet to be vetted.
|
||||
*
|
||||
* Represents the stream of signals, implements both `AsyncIterator` and
|
||||
|
@ -722,21 +687,6 @@ declare namespace Deno {
|
|||
},
|
||||
>(opt: T): Process<T>;
|
||||
|
||||
/** **UNSTABLE**: Send a signal to process under given `pid`. This
|
||||
* functionality only works on Linux and Mac OS.
|
||||
*
|
||||
* If `pid` is negative, the signal will be sent to the process group
|
||||
* identified by `pid`.
|
||||
*
|
||||
* const p = Deno.run({
|
||||
* cmd: ["sleep", "10000"]
|
||||
* });
|
||||
*
|
||||
* Deno.kill(p.pid, "SIGINT");
|
||||
*
|
||||
* Requires `allow-run` permission. */
|
||||
export function kill(pid: number, signo: Signal): void;
|
||||
|
||||
/** **UNSTABLE**: New API, yet to be vetted. Additional consideration is still
|
||||
* necessary around the permissions required.
|
||||
*
|
||||
|
|
|
@ -121,7 +121,6 @@ unitTest(
|
|||
cmd: [
|
||||
Deno.execPath(),
|
||||
"eval",
|
||||
"--unstable",
|
||||
"Deno.kill(Deno.pid, 'SIGKILL')",
|
||||
],
|
||||
});
|
||||
|
|
|
@ -104,6 +104,7 @@
|
|||
serveHttp: __bootstrap.http.serveHttp,
|
||||
resolveDns: __bootstrap.net.resolveDns,
|
||||
upgradeWebSocket: __bootstrap.http.upgradeWebSocket,
|
||||
kill: __bootstrap.process.kill,
|
||||
};
|
||||
|
||||
__bootstrap.denoNsUnstable = {
|
||||
|
@ -111,7 +112,6 @@
|
|||
Signal: __bootstrap.signals.Signal,
|
||||
SignalStream: __bootstrap.signals.SignalStream,
|
||||
emit: __bootstrap.compilerApi.emit,
|
||||
kill: __bootstrap.process.kill,
|
||||
setRaw: __bootstrap.tty.setRaw,
|
||||
consoleSize: __bootstrap.tty.consoleSize,
|
||||
DiagnosticCategory: __bootstrap.diagnostics.DiagnosticCategory,
|
||||
|
|
|
@ -309,7 +309,6 @@ fn op_kill(
|
|||
pid: i32,
|
||||
signal: String,
|
||||
) -> Result<(), AnyError> {
|
||||
super::check_unstable(state, "Deno.kill");
|
||||
state.borrow_mut::<Permissions>().run.check_all()?;
|
||||
kill(pid, &signal)?;
|
||||
Ok(())
|
||||
|
|
Loading…
Reference in a new issue