SafeSquid is the main proxy process on the Secure Web Gateway appliance. It accepts client connections, applies policies from the Web UI, and forwards allowed traffic.
Start — the daemon reads its own startup configuration, opens its configured listeners, loads the currently saved policy, and begins accepting connections.
Accept — each new client connection lands on a configured listener.
Evaluate — the connection runs through the request pipeline against whichever policy is currently loaded in memory.
Forward or block — a permitted request is forwarded to its destination. A denied request receives a block response and the connection is closed.
Log — each completed transaction is logged as it finishes.
Saving a change in the Web UI updates the running daemon’s policy for most sections with no restart. The new policy applies to the next connections evaluated. A small minority of low-level settings need a restart because they affect resources the daemon opens only once at startup, such as listener sockets.
-f — Run in the foreground (no double-fork). Use for debugging.
-v — Print the build version and exit.
-v exits without starting the proxy at all, which makes it the quickest way to confirm exactly which build is installed before comparing two appliances or filing a support request.Most tunables (listen address, thread limits, log levels) are set in /opt/safesquid/startup.ini, not on the command line.Foreground mode runs the daemon attached to the invoking session. So its own startup output and any immediate errors are visible directly, instead of only a generic service-manager failure summary. Use it for first-time setup and low-level troubleshooting, not day-to-day operation. It applies to both the -f flag above and the foreground service verb below.
Startup settings — /opt/safesquid/startup.ini, /opt/safesquid/setup.ini — see startup.ini tunables (not in sectionMaster)
Editing /usr/local/safesquid/security/policies/config.xml directly, outside the Web UI, is unsupported and risks putting the running daemon and the Web UI’s view of policy out of sync.
Background UPDATE hooks refresh application signatures, content signatures, categorisation feeds, and related databases. License state is managed under Subscription in the Web UI; see Cloud / categorisation feeds for paths under /var/lib/safesquid/.This refresh runs on its own schedule, with no restart and no interruption to active connections.
Service shows stopped but was not deliberately stopped — check status, then start it. If it will not stay up, run Foreground so the real startup error surfaces rather than a generic failure.
A Web UI change appears to have no effect — confirm it was actually saved, not just typed into a field. Most sections apply live; restarting to “fix” a section that should already apply live usually masks the real problem.
Need the exact installed build. Use the version flag rather than inferring it from the Web UI, especially when comparing appliances or filing a support request.
Suspected conflicting or unexpected policy. Check Config logs for the most recent changes and who made them before assuming the daemon is misbehaving. Most such reports are an unnoticed policy change.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SafeSquid Documentation","description":"Deploy Zero-Trust Web Security — SafeSquid Secure Web Gateway documentation.","colors":{"primary":"#0066CC","light":"#3B82F6","dark":"#0F172A"},"logo":{"light":"https://mintcdn.com/safe-squid-labs-12a0916f/WapkOaLV2w2WE_m9/images/logos/safesquid/safesquid-mark-blue.png?fit=max\u0026auto=format\u0026n=WapkOaLV2w2WE_m9\u0026q=85\u0026s=b7b9c81a4dfce86823f854d9510e5cec","dark":"https://mintcdn.com/safe-squid-labs-12a0916f/PZ5D4OEI8Q1II8co/images/safesquidWhite.png?fit=max\u0026auto=format\u0026n=PZ5D4OEI8Q1II8co\u0026q=85\u0026s=149dccbc6157c7707f7edba211ae87b3","href":"/getting_started/welcome"},"favicon":"https://mintcdn.com/safe-squid-labs-12a0916f/WapkOaLV2w2WE_m9/images/favicon.ico?fit=max\u0026auto=format\u0026n=WapkOaLV2w2WE_m9\u0026q=85\u0026s=7a799a5cc14069284c934d5f83717827","navbar":{"links":[{"href":"/blog","label":"Blog"},{"href":"https://help.safesquid.com/portal/en/community/safesquid-labs","label":"Forum"},{"icon":{"style":"brands","name":"github"},"href":"https://github.com/SafeSquid-Labs","label":""}],"primary":{"type":"button","label":"Get Started","href":"https://key.safesquid.com"}},"footer":{"socials":{"website":"https://www.safesquid.com/","github":"https://github.com/SafeSquid-Labs","x":"https://x.com/safesquid","linkedin":"https://in.linkedin.com/company/safesquid","youtube":"https://www.youtube.com/@securewebgateway"}},"icons":{"library":"fontawesome"},"integrations":{"ga4":{"measurementId":"G-ZVZHSKFGQF"}},"banner":{"content":"[Join our Blue Team for a live layer 7 mitigation workshop](https://meet.safesquid.com)","dismissible":true,"type":"info"},"styling":{"latex":false},"navigation":{"global":{"languages":[{"language":"en","default":true,"href":"/getting_started/welcome"},{"language":"es","href":"/?lang=es"}],"versions":[{"version":"v2026.0312.1923","default":true,"href":"/getting_started/welcome"},{"version":"v2024.0315.1413","href":"/?version=legacy"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"safe-squid-labs-12a0916f","hasAudioNarration":false,"actualSubdomain":"safe-squid-labs-12a0916f","customDomains":["docs.safesquid.com"],"gitSource":{"type":"github","owner":"safesquid-labs","repo":"safesquid-docs","deployBranch":"main","contentDirectory":"public","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ac7bb6e8abd6d065dca7197","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Use Cases","count":86},{"language":"default","tag":"Configuration","count":44},{"language":"default","tag":"Deployment","count":43},{"language":"default","tag":"Architecture","count":24},{"language":"default","tag":"Troubleshooting","count":20},{"language":"default","tag":"Access Restriction","count":17},{"language":"default","tag":"Authentication","count":17},{"language":"default","tag":"Application Setup","count":10},{"language":"default","tag":"Real Time Content Security","count":10},{"language":"default","tag":"Application Ecosystem","count":9}],"searchSettings":{"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@safesquid.net"}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"a:has(>img.nav-logo){flex-shrink:0!important}#sidebar-content li[data-active]>a{color:rgb(22, 25, 29)!important}.dark #sidebar-content li[data-active]>a{background-color:rgb(59, 130, 246)!important;color:rgb(22, 25, 29)!important}"}],"page":{"pagePath":"configuration/start_here/daemon","slug":"/configuration/start_here/daemon","pageMetadata":{"title":"SafeSquid daemon","description":"Learn how the SafeSquid daemon handles connections and policy, when a change needs a reload or a restart, and how to control the service.","keywords":["SafeSquid daemon","service control","daemon command-line options","live policy reload"],"href":"/configuration/start_here/daemon"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn how the SafeSquid daemon handles connections and policy, when a change needs a reload or a restart, and how to control the service.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Mermaid,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`control-the-safesquid-daemon`,children:`Control the SafeSquid Daemon`}),`\n`,_jsx(_components.p,{children:`SafeSquid is the main proxy process on the Secure Web Gateway appliance. It accepts client connections, applies policies from the Web UI, and forwards allowed traffic.`}),`\n`,_jsx(Heading,{level:`2`,id:`lifecycle`,children:`Lifecycle`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Start`}),` — the daemon reads its own startup configuration, opens its configured listeners, loads the currently saved policy, and begins accepting connections.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Accept`}),` — each new client connection lands on a configured listener.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Evaluate`}),` — the connection runs through the request pipeline against whichever policy is currently loaded in memory.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Forward or block`}),` — a permitted request is forwarded to its destination. A denied request receives a block response and the connection is closed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Log`}),` — each completed transaction is logged as it finishes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`React to policy changes`}),` — see `,_jsx(_components.a,{href:`#live-policy-reload-vs-restart`,children:`Live policy reload vs restart`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Stop`}),` — on a stop request, the daemon finishes or drops any in-flight connections cleanly and exits.`]}),`\n`]}),`\n`,_jsx(Mermaid,{chart:`flowchart TB\n start[Start — read startup config, open listeners, load saved policy]\n accept[Accept — a new client connection lands on a configured listener]\n evaluate[Evaluate — run the request pipeline against the policy in memory]\n verdict{Permitted?}\n forward[Forward the request to its destination]\n block[Return a block response and close the connection]\n log[Log the completed transaction]\n react{Policy changed?}\n reload[Apply the new policy to the next connections evaluated]\n restart[Restart required for listener-level settings]\n stop[Stop — finish or drop in-flight connections and exit]\n\n start --> accept --> evaluate --> verdict\n verdict -->|Yes| forward\n verdict -->|No| block\n forward --> log\n block --> log\n log --> react\n react -->|Most sections| reload --> accept\n react -->|Low-level resources| restart --> start\n react -->|No| accept\n accept -->|Stop request| stop`}),`\n`,_jsx(Heading,{level:`3`,id:`live-policy-reload-vs-restart`,children:`Live policy reload vs restart`}),`\n`,_jsx(_components.p,{children:`Saving a change in the Web UI updates the running daemon’s policy for most sections with no restart. The new policy applies to the next connections evaluated. A small minority of low-level settings need a restart because they affect resources the daemon opens only once at startup, such as listener sockets.`}),`\n`,_jsx(Heading,{level:`2`,id:`binary-and-service`,children:`Binary and service`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Binary`}),` — `,_jsx(_components.code,{children:`/opt/safesquid/bin/safesquid`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Service user`}),` — `,_jsx(_components.code,{children:`ssquid`}),` (group `,_jsx(_components.code,{children:`root`}),` on the appliance)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`PID file`}),` — `,_jsx(_components.code,{children:`/var/run/safesquid/safesquid.pid`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Init script`}),` — `,_jsx(_components.code,{children:`/etc/init.d/safesquid`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`systemd unit`}),` — `,_jsx(_components.code,{children:`/etc/systemd/system/safesquid.service`})]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`command-line-options`,children:`Command-line options`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`-f`})}),` — Run in the foreground (no double-fork). Use for debugging.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`-v`})}),` — Print the build version and exit.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`-v`}),` exits without starting the proxy at all, which makes it the quickest way to confirm exactly which build is installed before comparing two appliances or filing a support request.`]}),`\n`,_jsxs(_components.p,{children:[`Most tunables (listen address, thread limits, log levels) are set in `,_jsx(_components.code,{children:`/opt/safesquid/startup.ini`}),`, not on the command line.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Foreground mode`}),` runs the daemon attached to the invoking session. So its own startup output and any immediate errors are visible directly, instead of only a generic service-manager failure summary. Use it for first-time setup and low-level troubleshooting, not day-to-day operation. It applies to both the `,_jsx(_components.code,{children:`-f`}),` flag above and the `,_jsx(_components.code,{children:`foreground`}),` service verb below.`]}),`\n`,_jsx(Heading,{level:`2`,id:`service-control`,children:`Service control`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/etc/init.d/safesquid start`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/etc/init.d/safesquid stop`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/etc/init.d/safesquid restart`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/etc/init.d/safesquid status`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/etc/init.d/safesquid foreground`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`important-paths`,children:`Important paths`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Policy`}),` — `,_jsx(_components.code,{children:`/usr/local/safesquid/security/policies/config.xml`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Web UI`}),` — `,_jsx(_components.code,{children:`/usr/local/safesquid/ui_root/`}),` — browse at `,_jsx(_components.code,{children:`http://safesquid.cfg/`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Logs`}),` — `,_jsx(_components.code,{children:`/var/log/safesquid/`}),` (native, extended, config, performance, …)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cache`}),` — `,_jsx(_components.code,{children:`/var/cache/safesquid/`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Startup settings`}),` — `,_jsx(_components.code,{children:`/opt/safesquid/startup.ini`}),`, `,_jsx(_components.code,{children:`/opt/safesquid/setup.ini`}),` — see `,_jsx(_components.a,{href:`/configuration/start_here/startup_ini`,children:`startup.ini tunables`}),` (not in sectionMaster)`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Editing `,_jsx(_components.code,{children:`/usr/local/safesquid/security/policies/config.xml`}),` directly, outside the Web UI, is `,_jsx(_components.strong,{children:`unsupported`}),` and risks putting the running daemon and the Web UI’s view of policy out of sync.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`subscription-and-updates`,children:`Subscription and updates`}),`\n`,_jsxs(_components.p,{children:[`Background UPDATE hooks refresh application signatures, content signatures, categorisation feeds, and related databases. License state is managed under `,_jsx(_components.a,{href:`/configuration/infrastructure_and_access/subscription`,children:`Subscription`}),` in the Web UI; see `,_jsx(_components.a,{href:`/configuration/start_here/cloud_feeds`,children:`Cloud / categorisation feeds`}),` for paths under `,_jsx(_components.code,{children:`/var/lib/safesquid/`}),`.`]}),`\n`,_jsx(_components.p,{children:`This refresh runs on its own schedule, with no restart and no interruption to active connections.`}),`\n`,_jsx(Heading,{level:`2`,id:`common-problems`,children:`Common problems`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Service shows stopped but was not deliberately stopped`}),` — check status, then start it. If it will not stay up, run Foreground so the real startup error surfaces rather than a generic failure.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A Web UI change appears to have no effect`}),` — confirm it was actually saved, not just typed into a field. Most sections apply live; restarting to “fix” a section that should already apply live usually masks the real problem.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Need the exact installed build`}),`. Use the version flag rather than inferring it from the Web UI, especially when comparing appliances or filing a support request.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Suspected conflicting or unexpected policy`}),`. Check Config logs for the most recent changes and who made them before assuming the daemon is misbehaving. Most such reports are an unnoticed policy change.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-verify`,children:`How to verify`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Confirm status reports running with a valid PID file.`}),`\n`,_jsxs(_components.li,{children:[`Send one test request and confirm it appears in `,_jsx(_components.strong,{children:`Reports → Detailed logs`}),`.`]}),`\n`,_jsx(_components.li,{children:`After a change expected to need a restart, restart and re-test rather than assuming it applied live.`}),`\n`,_jsx(_components.li,{children:`If startup itself is in doubt, stop the service and start in Foreground.`}),`\n`,_jsx(_components.li,{children:`Confirm the build with the version flag after an upgrade.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/configuration/start_here/first_configuration`,children:`First configuration`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/configuration/start_here/architecture`,children:`Architecture and request pipeline`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/configuration/application_setup/access_restrictions`,children:`Access restrictions`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/configuration/infrastructure_and_access/subscription`,children:`Subscription`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/configuration/start_here/logging`,children:`Logging and troubleshooting`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"SafeSquid daemon","description":"Learn how the SafeSquid daemon handles connections and policy, when a change needs a reload or a restart, and how to control the service.","keywords":["SafeSquid daemon","service control","daemon command-line options","live policy reload"],"href":"/configuration/start_here/daemon"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Control the SafeSquid Daemon","slug":"control-the-safesquid-daemon","depth":1,"children":[]},{"title":"Lifecycle","slug":"lifecycle","depth":2,"children":[{"title":"Live policy reload vs restart","slug":"live-policy-reload-vs-restart","depth":3,"children":[]}]},{"title":"Binary and service","slug":"binary-and-service","depth":2,"children":[]},{"title":"Command-line options","slug":"command-line-options","depth":2,"children":[]},{"title":"Service control","slug":"service-control","depth":2,"children":[]},{"title":"Important paths","slug":"important-paths","depth":2,"children":[]},{"title":"Subscription and updates","slug":"subscription-and-updates","depth":2,"children":[]},{"title":"Common problems","slug":"common-problems","depth":2,"children":[]},{"title":"How to verify","slug":"how-to-verify","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"safe-squid-labs-12a0916f","siteName":"SafeSquid Documentation","title":"SafeSquid daemon - SafeSquid Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-08T15:49:32.608Z","originalFileLocation":"configuration/start_here/daemon.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn how the SafeSquid daemon handles connections and policy, when a change needs a reload or a restart, and how to control the service.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SafeSquid Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"SafeSquid daemon - SafeSquid Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how the SafeSquid daemon handles connections and policy, when a change needs a reload or a restart, and how to control the service.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SafeSquid Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.safesquid.com/configuration/start_here/daemon\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://safe-squid-labs-12a0916f.mintlify.site/_mintlify/api/og/v2?division=Administration+Basics\u0026amp;title=SafeSquid+daemon\u0026amp;description=Learn+how+the+SafeSquid+daemon+handles+connections+and+policy%2C+when+a+change+needs+a+reload+or+a+restart%2C+and+how+to+control+the+service.\u0026amp;theme=4ec1e09f5eab69716f172ff1\u0026amp;signature=b3096281a73bfc8a8d30e8d1be720e89ae39233395069c9b1e2008e7beefa8ed\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"SafeSquid daemon - SafeSquid Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how the SafeSquid daemon handles connections and policy, when a change needs a reload or a restart, and how to control the service.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://safe-squid-labs-12a0916f.mintlify.site/_mintlify/api/og/v2?division=Administration+Basics\u0026amp;title=SafeSquid+daemon\u0026amp;description=Learn+how+the+SafeSquid+daemon+handles+connections+and+policy%2C+when+a+change+needs+a+reload+or+a+restart%2C+and+how+to+control+the+service.\u0026amp;theme=4ec1e09f5eab69716f172ff1\u0026amp;signature=b3096281a73bfc8a8d30e8d1be720e89ae39233395069c9b1e2008e7beefa8ed\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/safe-squid-labs-12a0916f/dNzFC4OIOBxe5Jm_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SafeSquid Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0066CC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.safesquid.com/configuration/start_here/daemon\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/configuration/start_here/daemon.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.safesquid.com/#organization\",\"name\":\"SafeSquid Documentation\",\"url\":\"https://docs.safesquid.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/safe-squid-labs-12a0916f/WapkOaLV2w2WE_m9/images/logos/safesquid/safesquid-mark-blue.png?fit=max\u0026auto=format\u0026n=WapkOaLV2w2WE_m9\u0026q=85\u0026s=b7b9c81a4dfce86823f854d9510e5cec\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.safesquid.com#website\",\"name\":\"SafeSquid Documentation\",\"url\":\"https://docs.safesquid.com\",\"publisher\":{\"@id\":\"https://docs.safesquid.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.safesquid.com/configuration/start_here/daemon#webpage\",\"url\":\"https://docs.safesquid.com/configuration/start_here/daemon\",\"name\":\"SafeSquid daemon\",\"description\":\"Learn how the SafeSquid daemon handles connections and policy, when a change needs a reload or a restart, and how to control the service.\",\"dateModified\":\"2026-10-08T15:49:32.608Z\",\"isPartOf\":{\"@id\":\"https://docs.safesquid.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.safesquid.com/configuration/start_here/daemon#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.safesquid.com/configuration/start_here/daemon#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Administration Basics\",\"item\":\"https://docs.safesquid.com/configuration/start_here/first_configuration\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SafeSquid daemon\",\"item\":\"https://docs.safesquid.com/configuration/start_here/daemon\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.safesquid.com/configuration/start_here/daemon#article\",\"headline\":\"SafeSquid daemon\",\"name\":\"SafeSquid daemon\",\"description\":\"Learn how the SafeSquid daemon handles connections and policy, when a change needs a reload or a restart, and how to control the service.\",\"url\":\"https://docs.safesquid.com/configuration/start_here/daemon\",\"mainEntityOfPage\":{\"@id\":\"https://docs.safesquid.com/configuration/start_here/daemon#webpage\"},\"dateModified\":\"2026-10-08T15:49:32.608Z\",\"keywords\":\"SafeSquid daemon, service control, daemon command-line options, live policy reload\",\"publisher\":{\"@id\":\"https://docs.safesquid.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.safesquid.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SafeSquid Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SafeSquid Documentation","nav":{"global":{"languages":[{"language":"en","default":true,"href":"/getting_started/welcome"},{"language":"es","href":"/?lang=es"}],"versions":[{"version":"v2026.0312.1923","default":true,"href":"/getting_started/welcome"},{"version":"v2024.0315.1413","href":"/?version=legacy"}]},"tabs":[{"tab":"Get Started","icon":"compass","pages":[{"title":"Get Started","href":"/getting_started/welcome"}]},{"tab":"Architecture","icon":"sitemap","pages":[{"title":"Architecture","href":"/architecture/application_ecosystem/main"}]},{"tab":"Deployment","icon":"server","pages":[{"title":"Deployment","href":"/deployment/licensing_requirements"}]},{"tab":"Configuration","icon":"sliders","groups":[{"group":"Administration Basics","pages":[{"title":"First configuration","href":"/configuration/start_here/first_configuration"},{"title":"Architecture and request pipeline","description":"Follow a request through SafeSquid from admission and identity, through protocol fork and enforcement, to fetch and response delivery.","href":"/configuration/start_here/architecture"},{"title":"SafeSquid daemon","href":"/configuration/start_here/daemon"},{"title":"Authentication","description":"Choose how SafeSquid identifies users, including Kerberos SSO and system authentication, so Access Profiles and logs can name them.","href":"/configuration/start_here/authentication"},{"title":"Debug response headers","href":"/configuration/start_here/debug_response_headers"},{"title":"startup.ini tunables","href":"/configuration/start_here/startup_ini"},{"title":"Cloud / categorisation feeds","href":"/configuration/start_here/cloud_feeds"},{"title":"Integrations","href":"/configuration/start_here/integrations"}]},{"group":"Licensing and Self-Service Portal","pages":[{"title":"Subscription","href":"/configuration/infrastructure_and_access/subscription"},{"title":"Support","href":"/configuration/infrastructure_and_access/support"}]},{"group":"Application Setup","pages":[{"title":"Network settings","href":"/configuration/application_setup/network_settings_and_listeners"},{"title":"Integrate LDAP","href":"/configuration/application_setup/integrate_ldap"},{"title":"Access restrictions","href":"/configuration/application_setup/access_restrictions"},{"group":"Accelerators","expanded":false,"pages":[{"title":"Caching","href":"/configuration/application_setup/accelerators/caching"},{"title":"Prefetching","href":"/configuration/application_setup/accelerators/prefetching"}]},{"title":"System configuration","href":"/configuration/application_setup/system_configuration"},{"title":"Proxy chain","href":"/configuration/application_setup/proxy_chain"},{"title":"FTP browsing","href":"/configuration/application_setup/ftp_browsing"},{"title":"WCCP","href":"/configuration/application_setup/wccp"},{"title":"SSqore","href":"/configuration/application_setup/ssqore"}]},{"group":"Real Time Content Security","pages":[{"title":"HTTPS inspection","href":"/configuration/real_time_content_security/https_inspection"},{"title":"Clam antivirus","href":"/configuration/real_time_content_security/clam_antivirus"},{"title":"Text analyzer","href":"/configuration/real_time_content_security/text_analyzer"},{"title":"Redirect","href":"/configuration/real_time_content_security/redirect"},{"title":"DNS Blacklist","href":"/configuration/real_time_content_security/dns_blacklist"},{"title":"Image analyzer","href":"/configuration/real_time_content_security/image_analyzer"},{"title":"Content modifier","href":"/configuration/real_time_content_security/content_modifier"},{"title":"DLP","href":"/configuration/real_time_content_security/dlp"},{"title":"ICAP","href":"/configuration/real_time_content_security/icap"},{"title":"SqScan","href":"/configuration/real_time_content_security/sqscan"}]},{"group":"Custom Settings","pages":[{"title":"Categorize Web-Sites","href":"/configuration/custom_settings/categorize_web_sites"},{"title":"Time Profiler","href":"/configuration/custom_settings/time_profiler"},{"title":"Response Types","href":"/configuration/custom_settings/response_types"},{"title":"Request Types","href":"/configuration/custom_settings/request_types"},{"title":"Templates","href":"/configuration/custom_settings/templates"},{"title":"External applications","href":"/configuration/custom_settings/external_applications"},{"title":"Application Signatures","href":"/configuration/custom_settings/application_signatures"},{"title":"Content Signatures","href":"/configuration/custom_settings/content_signatures"},{"title":"Suggested Profiles","href":"/configuration/custom_settings/suggested_profiles"}]},{"group":"Restriction Policies","pages":[{"group":"Privacy control","expanded":false,"pages":[{"title":"Cookie filter","href":"/configuration/restriction_policies/privacy_control/cookie_filter"},{"title":"Header filter","href":"/configuration/restriction_policies/privacy_control/header_filter"},{"title":"Elevated Privacy","href":"/configuration/restriction_policies/privacy_control/elevated_privacy"}]},{"title":"Access Profiles","href":"/configuration/restriction_policies/access_profiles"},{"title":"Speed Limits","href":"/configuration/restriction_policies/speed_limits"}]}]},{"tab":"Use Cases","icon":"lightbulb","pages":[{"title":"Use Cases","href":"/use_cases/use_cases"}]},{"tab":"Reporting","icon":"chart-line","pages":[{"title":"Reporting","href":"/reporting/reporting"}]},{"tab":"Troubleshooting","icon":"wrench","pages":[{"title":"Troubleshooting","href":"/troubleshooting/troubleshooting"}]},{"tab":"FAQs","icon":"circle-question","pages":[{"title":"FAQs","href":"/faqs/faqs"}]}]},"basePath":"","title":"SafeSquid daemon - SafeSquid Documentation","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["10e4515597"],"chunks":["BannerMarkdown-Cj6eAYhz.js","dist-CdrJecqK.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-D-TRO5q5.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}