# [[How to leave a service running when the terminal window is closed on macOS]] ![[How to leave a service running when the terminal window is closed on macOS.svg]] [[launchctl]] is the [[CLI]] for managing [[launchd]], which is the service management tool for [[macOS]]. It is similar to [[systemd]] on [[Linux]] or [[Microsoft Windows|Windows]]. Here's how you can use launchctl to leave a service running when the terminal window is closed. ## Create the launchctl configuration file Create a file called: `~/Library/LaunchAgents/syncthing.plist` and replace `syncthing` and the path with the name and path of your service. ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>syncthing</string> <key>ProgramArguments</key> <array> <string>/opt/homebrew/bin/syncthing</string> <string>serve</string> <string>--no-browser</string> <string>--no-restart</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> <key>ProcessType</key> <string>Background</string> <key>StandardErrorPath</key> <string>/Users/nic/Library/Logs/syncthing.log</string> <key>StandardOutPath</key> <string>/Users/nic/Library/Logs/syncthing.log</string> </dict> </plist> ``` ## Load the configuration file ```bash launchctl load ~/Library/LaunchAgents/syncthing.plist ``` Loading a configuration file instructs launchctl to start the service using the options you specified in the file. ## Verify that the service is running You can check that the service is running by doing: ```bash pgrep -l syncthing ``` %% # Excalidraw Data ## Text Elements ## Drawing ```json { "type": "excalidraw", "version": 2, "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.1.4", "elements": [ { "id": "4y8R7iOA", "type": "text", "x": 118.49495565891266, "y": -333.44393157958984, "width": 3.8599853515625, "height": 24, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": null, "seed": 967149026, "version": 2, "versionNonce": 939059582, "isDeleted": true, "boundElements": null, "updated": 1713723615080, "link": null, "locked": false, "text": "", "rawText": "", "fontSize": 20, "fontFamily": 4, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "", "lineHeight": 1.2 } ], "appState": { "theme": "dark", "viewBackgroundColor": "#ffffff", "currentItemStrokeColor": "#1e1e1e", "currentItemBackgroundColor": "transparent", "currentItemFillStyle": "solid", "currentItemStrokeWidth": 2, "currentItemStrokeStyle": "solid", "currentItemRoughness": 1, "currentItemOpacity": 100, "currentItemFontFamily": 4, "currentItemFontSize": 20, "currentItemTextAlign": "left", "currentItemStartArrowhead": null, "currentItemEndArrowhead": "arrow", "scrollX": 583.2388916015625, "scrollY": 573.6323852539062, "zoom": { "value": 1 }, "currentItemRoundness": "round", "gridSize": null, "gridColor": { "Bold": "#C9C9C9FF", "Regular": "#EDEDEDFF" }, "currentStrokeOptions": null, "previousGridSize": null, "frameRendering": { "enabled": true, "clip": true, "name": true, "outline": true } }, "files": {} } ``` %%