لماذا slay?
كل ما تحتاجه لاستعادة منافذك.
TUI تفاعلي
ابحث وتصفح وحدد عمليات متعددة باستخدام التنقل بلوحة المفاتيح.
رسوم الإيقاف
شاهد رصاصة تطير عبر الطرفية عندما يتم إيقاف عملية.
إيقاف سلس
SIGTERM أولاً، يتصاعد إلى SIGKILL فقط إذا رفضت العملية التوقف.
وضع المراقبة
استمر في الاستطلاع وأوقف تلقائياً العمليات التي تعود على منفذك.
أشجار العمليات
أوقف شجرة العمليات بالكامل، الفرعية أولاً، لإيقاف نظيف.
مخرجات JSON
مرر NDJSON إلى jq للبرمجة النصية وخطوط CI والأتمتة.
تسميات ذكية
يكتشف تلقائياً Node وPython وDocker وPostgreSQL وVite وأكثر من 20 غيرها.
صفر تبعيات
بدون انتفاخ. يشحن فقط ما يحتاجه. يُثبت في أقل من ثانية.
متعدد المنصات
يعمل على macOS (lsof) وLinux (lsof) وWindows (netstat + taskkill).
ابدأ الآن
جاهز للعمل بأمر واحد.
بداية سريعة
npx slay-port 3000 تثبيت عام
npm i -g slay-port && slay 3000 بداية سريعة
pnpm dlx slay-port 3000 تثبيت عام
pnpm add -g slay-port && slay 3000 بداية سريعة
yarn dlx slay-port 3000 تثبيت عام
yarn global add slay-port && slay 3000 بداية سريعة
bunx slay-port 3000 تثبيت عام
bun add -g slay-port && slay 3000 بداية سريعة
brew install hammadxcm/slay/slay-port تثبيت عام
brew install hammadxcm/slay/slay-port && slay 3000 استخدام API
import { findByPort, killProcess } from 'slay-port' شاهده أثناء العمل
اثنتا عشرة طريقة للإيقاف.
Basic Kill
slay 3000
$ slay 3000
3000 > node PID 12847 (Dev Server)
* *
***
killed PID 12847 on port 3000 [SIGKILL]
Interactive Mode
slay -i
$ slay -i
> 3000 node PID 12847 Dev Server
8080 python PID 9321 HTTP Alt
5432 pg PID 4510 PostgreSQL
↑↓ navigate space select enter confirm
Watch Mode
slay 3000 -w
$ slay 3000 -w
watching port 3000...
killed PID 12847 [SIGKILL]
watching port 3000...
process respawned as PID 12901
killed PID 12901 [SIGKILL]
watching port 3000...
Force Kill
slay 3000 -f
$ slay 3000 -f
3000 > node PID 12847 (Dev Server)
*========================***
killed PID 12847 on port 3000 [SIGKILL]
no confirmation needed (-f)
Graceful Shutdown
slay 3000 --soft
$ slay 3000 --soft
3000 > node PID 12847 (Dev Server)
sending SIGTERM...
waiting for graceful exit (5s)...
process exited gracefully [SIGTERM]
Multi-port
slay 3000 8080 5432
$ slay 3000 8080 5432
3000 > node PID 12847 (Dev Server)
8080 > python PID 9321 (HTTP Alt)
5432 > pg PID 4510 (PostgreSQL)
killed 3 processes on 3 ports
Dry Run
slay 3000 -n
$ slay 3000 -n
3000 > node PID 12847 (Dev Server)
[dry run] would kill PID 12847
no processes were harmed
Process Tree
slay 3000 -t
$ slay 3000 -t
3000 > node PID 12847 (Dev Server)
└─ PID 12848 (worker)
└─ PID 12849 (worker)
killed tree: 12849, 12848, 12847
JSON Output
slay 3000 --json
$ slay 3000 --json
{"type":"found","pid":12847,"port":3000}
{"type":"killed","pid":12847,"signal":"SIGKILL"}
{"type":"summary","killed":1,"failed":0}
UDP Ports
slay 53 --udp
$ slay 53 --udp
53/udp > mDNSResponder PID 289
*========================***
killed PID 289 on port 53/udp [SIGKILL]
All Listeners
slay --all -y
$ slay --all -y
scanning all ports...
found 5 listening processes
killed 5/5 processes
0 failed
Verbose Mode
slay 3000 -v
$ slay 3000 -v
[tcp] 3000 > node PID 12847
[signal] sending SIGKILL to 12847
[timing] kill took 12ms
killed PID 12847 on port 3000 [SIGKILL]
برمجي API
استخدم slay كمكتبة في مشاريع Node.js الخاصة بك.
الصادرات
-
findByPort(platform, port)Find processes on a specific port -
findByPorts(platform, ports)Find processes on multiple ports -
findAllListening(platform)Find all listening processes -
killProcess(platform, proc)Kill a single process -
killAll(platform, procs)Kill multiple processes -
enrichLabel(proc)Add smart labels to a process
api.ts
import { findByPort, killProcess, platform }
from 'slay-port';
const procs = await findByPort(platform, 3000);
for (const proc of procs) {
const result = await killProcess(platform, proc);
console.log( `Killed $${result.pid} on $${result.port}` );
}