INNER CODE UNIT · JavaScript
useSystemTimeout
bvisible/mcp-ssh-manager · src/index.js:340
const useSystemTimeout = timeoutMs > 0 && timeoutMs < 300000 && !rawCommand; // Max 5 minutes, not for raw commands
if (useSystemTimeout) {
// Wrap command with timeout command (works on Linux/Mac)
const timeoutSeconds = Math.ceil(timeoutMs / 1000);
const wrappedCommand = `timeout ${timeoutSeconds} sh -c '${command.replace(/'/g, '\'\\\'\'')}'`;
try {
const result = await ssh.execCommand(wrappedCommand, {
...otherOptions,
timeout: timeoutMs + WRAPPED_COMMAND_TIMEOUT_GRACE_MS
});
// Check if timeout occurred (exit code 124 on Linux, 124 or 143 on Mac)
if (result.code === 124 || result.code === 143) {
throw new Error(`Command timeout after ${timeoutMs}ms: ${command.substring(0, 100)}...`);
}