Built FluxMon, a Linux process monitor written in Java from scratch. No libraries. No frameworks. Just raw /proc. What it does: → Reads per-process CPU, memory, and user data directly from the Linux kernel interfaces (/proc filesystem) — the same source htop uses → Renders a real-time TUI using ANSI escape codes and alternate screen buffer → Spring Boot REST API exposes live process data as JSON — GET /api/processes, /api/processes/top → Raw HTTP/1.1 server built from scratch using Java sockets — zero frameworks And the next step A web dashboard where you can monitor your own Linux machine's resources in real time — directly from the browser. The whole project goes from kernel interfaces → HTTP protocol → REST API → browser. Every layer built manually. GitHub: https://lnkd.in/dQf7b3gB Project structure: FluxMon/ ├── Core → TUI, reads /proc directly ├── API → Spring Boot REST layer └── Dashboard → coming soon #Java #Linux #SystemsProgramming #OpenSource #SoftwareEngineering
Building FluxMon: A Raw Linux Process Monitor in Java
More Relevant Posts
-
After the fifth httpd deployment, permissions start to blur. You migrate a site or push an update, and suddenly the permissions are a mess. Is it www-data? Is it apache? Is it /var/www or /srv/www? I wrote DistroChown to handle the "Permission Drift" automatically. It reads the distro via /etc/os-release and aligns everything to the correct standards (755/644) for your specific distribution (Debian, Rocky, RHEL, SUSE). You literally clone the script anywhere, and run it. 🛠️ Lightweight. No dependencies. A simple Python script. Check it out on GitHub: https://lnkd.in/ddKMCe8Z #Linux #SysAdmin #Python #Automation #DevOps
To view or add a comment, sign in
-
I got tired of killing my dev server just to free a port. So I built park — a CLI tool that freezes a running process AND releases its TCP port. Resume later with the same PID, same memory, same warm state. $ park 8000 # server freezes, port frees $ park resume 8000 # server is back, like nothing happened The trick: Ctrl+Z (SIGSTOP) doesn't free the port — the kernel still holds the socket bound. park actually reaches inside the target process and injects a close(fd) syscall. That's what tells the kernel to release the port. On Linux: ptrace + syscall injection. On macOS: Mach kernel APIs + thread injection. Works on any process — uvicorn, FastAPI, Flask, npm run dev, anything. See it in action: https://lnkd.in/g2ikv37r Install in one line: curl -fsSL https://lnkd.in/giffZ8wg | sh GitHub: https://lnkd.in/gh7cWV7Q Website: https://lnkd.in/g_j8C8Tu Open source, single binary, no dependencies. Built with Go. Built the entire thing — from first line to working macOS Mach injection, CI pipeline, automated releases, and landing page — in a single session with Claude Code. #opensource #devtools #golang #cli #programming #developer
To view or add a comment, sign in
-
-
Bugs in device drivers don't just crash apps. They crash systems. 🐞 Coccinelle catches them before they ever run, using semantic patches that understand your C code, not just its text. Our engineer, ADITYA KULKARNI, breaks it all down in Blog 1 of our 3-part series on Static Analysis Tools for Linux Device Driver Development: ✅ Why static analysis is non-negotiable for driver developers ✅ How to write your own .cocci semantic patch rules ✅ Real-world use cases: API migrations, null checks, lock imbalances & more ✅ How to integrate Coccinelle into your CI/CD workflow Whether you're writing your first driver or maintaining a large kernel tree, this is a must-read. 📖 Read the full blog here: https://lnkd.in/eBjahbmB Tag a fellow driver developer who needs to read this 👇 #Linux #DeviceDrivers #KernelDevelopment #StaticAnalysis #Coccinelle #EmbeddedSystems #SoftwareEngineering #VayavyaLabs
To view or add a comment, sign in
-
This bug cost me hours and it wasn’t even visible. Pushed code that worked perfectly on my machine. CI pipeline failed instantly on Linux. The culprit? Something most developers never notice. We were migrating a Java Spring Boot application to Azure, with a Bitbucket CI/CD pipeline running on Linux. All tests passed locally on Windows. But the pipeline kept failing with this cryptic error: [ERROR] SomeTest.java:[1,1] illegal character: '\ufeff' [ERROR] class, interface, enum, or record expected No logic issue. No syntax error. The problem was UTF-8 with BOM, Windows had added 3 invisible bytes at the start of Java files. The Linux Java compiler doesn’t accept it. Fix: Re-saved files as UTF-8 without BOM -> pipeline turned green. 7 files affected. Hours saved (after hours lost 😄). Cross-platform differences (encoding, line endings, case sensitivity) can silently break CI pipelines. If you code on Windows but build on Linux, check your file encoding. Invisible characters can break very visible things. #Java #CICD #DevOps #SpringBoot #CloudMigration #TIL
To view or add a comment, sign in
-
Root disk swelling on your prod box? You need the fastest audit in your toolbox. 🔥 `du -h --max-depth=1 / | sort -rh | head -n 10` du -h prints sizes in human readable form. --max-depth=1 keeps output to top level, so you see the big folders, not every file. / is the path; replace with a mount if needed. | sort -rh sorts by size, largest first, using human-readable numbers. | head -n 10 limits to the top ten results. You're debugging a prod server at 2 AM and / is near full. This command reveals the biggest folders at a glance. Then prune logs, rotate caches, or relocate data to reclaim space. The terminal is a superpower when you can map space with one line. It makes fast, repeatable checks possible in scripts or cron jobs. 🐧 Run it right now. Tell me what you find. #linux #terminal #filesystem #du #diskspace #systemadmin #opensource #devops #productivity #bash #commandline #scripting #loganalysis #serveradmin
To view or add a comment, sign in
-
-
One important realization while working with multithreading in C++: std::thread vs pthread is not about which creates threads — both ultimately rely on the OS. It’s about how you interact with them. At a glance: C++ → std::thread → pthread → OS threads So what actually changes? With pthread: • Low-level C API • Manual handling (void*, return codes) • More control, more room for mistakes With std::thread: • Modern C++ abstraction • RAII-based safety • Strong typing • Exception handling • Cleaner, more readable code The key shift: You’re not switching away from system threads you’re switching to a safer and more expressive interface to use them. That’s why modern C++ feels powerful: It doesn’t remove control it wraps it intelligently. Rule of thumb: Use pthread when you need fine-grained system-level control Use std::thread for almost everything else Curious: Did you start your journey with low-level pthread, or jump straight into modern C++ threading? #cpp #cplusplus #multithreading #concurrency #linux #softwareengineering #programming
To view or add a comment, sign in
-
-
🧠 I worked some time ago on building a minimalist Unix-like shell in Rust — a hands-on way to explore system-level programming. Instead of relying on existing shells or external binaries, the objective was to implement core shell functionality from scratch, focusing on process execution, file system operations, and command parsing. Key features: • Interactive shell loop with a custom prompt • Implementation of core commands: cd, ls, pwd, cat, cp, rm, mv, mkdir, echo, exit • Command parsing and execution flow • Robust error handling for invalid input • Graceful exit handling (EOF) What made this project valuable: Working directly with low-level concepts provided a clearer understanding of how shells manage processes and interact with the filesystem — while applying Rust’s safety model in a real-world context. This experience strengthened my foundation in system programming and gave me practical insight into how Unix-like environments operate under the hood. 🤝 Built in collaboration with mohammed jebbari, Ahmed jebbari, ABDELMOUNAIM JEMI #Rust #Linux #SystemsProgramming #Backend #CLI #Shell #LowLevel
To view or add a comment, sign in
-
-
Getting Productive with an Unfamiliar Stack in a Day I hadn’t worked with Delphi before, and I’m primarily a Linux user. I spun up a Windows VM, created a GitHub repo, got up to speed, and built a small working contacts app in a day to see how quickly I could become productive in an unfamiliar stack. The goal wasn’t complexity—it was to demonstrate a structured approach: • stand up the environment • build a simple UI • simulate persistence in-memory • transition to a real database (SQLite) • refine the UI to match the data model More than anything, it reinforced something I rely on in my work: the ability to step into an unfamiliar environment, get operational quickly, and move from exploration to a working system. Full write-up: https://lnkd.in/eFhGKU2N Blog post: https://lnkd.in/ekd6aKXh
To view or add a comment, sign in
-
VB.NET Tip: Generate Continuous Numbers with Enumerable.Range If you ever need to generate continuous numbers in VB.NET, Enumerable.Range is your best friend. Enumerable.Range(start, count) ✔ start → first number ✔ count → how many numbers to generate Code ===== Dim numbers As IEnumerable(Of Integer) = Enumerable.Range(1, 1000) For Each n As Integer In numbers Console.WriteLine(n) Next Output: ====== 1 2 3 … 1000 If you want numbers from 1 to 10,000, just change the count: vb.net Enumerable.Range(1, 10000) Simple, clean, and super useful for automation, testing, and data generation. https://lnkd.in/dwzUgt6T #VB.NET #VB.NETTips #DOTNET #programming #learning #lambda #linq #TechTips #linkedinlearning #lambdaexpression
To view or add a comment, sign in
-
If you work with APIs or logs, you’ve seen this number before: 1712589423 A Unix timestamp. Not very helpful to read. And converting it usually means opening Google and typing “epoch converter”… again. So we added an Epoch Converter to JSONGate. Now you can: • Convert Unix timestamps to human-readable time • Convert date → epoch instantly • Handle milliseconds and seconds • Do it directly in the browser No uploads. No data leaving your machine. Just a quick tool when you need it. Try it here: 👉 https://lnkd.in/gb2YiMPF It’s a small tool, but if you debug APIs or backend logs, you probably use something like this every week. Curious — what’s the tool you always end up Googling during debugging? #BuildInPublic #JSONGate #DevTools #WebDevelopment #JavaScript #Programming #SoftwareEngineering #API #DeveloperTools #IndieHacker
To view or add a comment, sign in
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development
U did a great work harshit bhai 💥💥