{
  "id": 4173998,
  "title": "Editing the plist Changed Nothing: launchd Kept Running My Old 30s Timeout Until 31 Lines of Bash Fixed It",
  "url": "https://urgent.news/2026/08/29/editing-the-plist-changed-nothing-launchd-kept-running-my-old-30s",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-29T11:00:07.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/bokuwalily/editing-the-plist-changed-nothing-launchd-kept-running-my-old-30s-timeout-until-31-lines-of-bash-10d9"
  },
  "original_language": "en",
  "account": "The story revolves around a programmer named Lily who experienced a significant income challenge when she was laid off. She then rebuilt her autonomous Claude Code environment, which now generates ¥1.2M/month in revenue. The main issue in the article is about the launchd mechanism in macOS, which freezes environment variables at load time. This means that changing a timeout value in a plist file does not take effect until the job is idle. Lily discovered this after setting the timeout from 30 to 45 seconds in a plist file, but launchd kept running the job at 30 seconds. The fix is a 31-line shell script called autolike-plist-reconcile.sh, which compares the configured value in the plist file with the value launchd is actually holding. If the values do not match, the script checks if the job is running. If it is, the script logs a deferred line and waits for the next run. If the job is stopped, the script unloads the job using launchctl bootout, reloads it using launchctl bootstrap, and records the reloaded values in the log. This mechanism ensures that the config files and running state stay in agreement without human intervention, creating an autonomous environment.",
  "summary": "I'm Lily. I made ¥100k/month in college, pushed it to ¥600k/month juggling multiple side gigs, lost all of it when I was laid off for reasons that had nothing to do with me, spent six months rebuilding an autonomous Claude Code environment, and now run ¥1.2M/month in revenue. Here's the concrete before/after this article is about: I changed a timeout from 30 to 45 in a plist, and launchd kept…",
  "key_points": [
    "Lily's autonomous Claude Code environment generates ¥1.2M/month in revenue.",
    "macOS launchd freezes environment variables at load time, ignoring plist changes.",
    "31-line Bash script autolike-plist-reconcile.sh reconciles plist and launchd states automatically."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}