When Squid is compiled as a Windows service, the -N command line switch is disabled, and default run mode of Squid is no daemon (=no service) mode, so is possible to run Squid from command line for debug purpose with all command line options available.
On Windows 2000/XP/2003 the service is configured to use the Windows Service Recovery option restarting automatically after 60 seconds.
The squid -? command gives the following output:
Usage: squid [-dhirsvzCDFRVYX] [-f config-file] [-[au] port] [-k signal] [-n nam e] [-O CommandLine] -a port Specify HTTP port number (default: 3128). -d level Write debugging to stderr also. -f file Use given config-file instead of c:/squid/etc/squid.conf -h Print help message. -i Installs as a Windows Service (see -n option). -k reconfigure|rotate|shutdown|interrupt|kill|debug|check|parse Parse configuration file, then send signal to running copy (except -k parse) and exit. -n name Specify Windows Service name to use for service operations default is: SquidNT. -r Removes a Windows Service (see -n option). -s Enable logging to syslog. -u port Specify ICP port number (default: 3130), disable with 0. -v Print version. -z Create swap directories -C Do not catch fatal signals. -D Disable initial DNS tests. -F Don't serve any requests until store is rebuilt. -O options Set Windows Service Command line options in Registry. -R Do not set REUSEADDR on port. -S Double-check swap during rebuild. -V Virtual host httpd-accelerator. -X Force full debugging. -Y Only return UDP_HIT or UDP_MISS_NOFETCH during fast reload.
The service installation is made with -i command line switch, it's possible to use -f switch at the same time for specify a different config-file settings for the Squid Service that is stored on Registry.
A new -n switch specify the Windows Service Name, so multiple Squid instance are allowed. "SquidNT" is the default when the switch is not used.
So the install service syntax is:
squid -i [-f file] [-n name]
To start as service is used a "hidden" --ntservice:service-name command line switch, where service-name is the name specified with -n options at service install time.
Service uninstallation is made with -r command line switch plus the appropriate -n switch.
The -k switch family must be used with the appropriate -f and -n switches, so the syntax is:
squid -k command [-f file] -n service-namewhere service-name is the name specified with -n options at service install time.
To use Squid original command line, the new -O switch must be used ONCE, the sintax is:
squid -O cmdline [-n service-name]If multiple service command line options must be specified, use quote. The -n switch is needed only when non default service name is in use.
Example:
squid -O "-D -a 8080" -n squidsvc
The process status helper functions make it easier for you to obtain information about processes and device drivers running on Microsoft® Windows NT®/Windows® 2000. These functions are available in PSAPI.DLL, which is distributed in the Microsoft® Platform Software Development Kit (SDK). The same information is generally available through the performance data in the registry, but it is more difficult to get to it. PSAPI.DLL is freely redistributable.
PSAPI.DLL is available only on Windows NT, 2000, XP and .NET. The implementation in Squid is aware of this, and try to use it only on the rigth platform.
On Windows NT PSAPI.DLL can be found as component of many applications, if you need it, you can find it on Windows NT Resource KIT. If you have problem, it can be downloaded from here: http://download.microsoft.com/download/platformsdk/Redist/4.0.1371.1/NT4/EN-US/psinst.EXE
On Windows 2000 and later it is available installing the Windows Support Tools, located on the Support\Tools folder of the installation Windows CD-ROM.
On Windows platforms, if no value is specified in the dns_nameservers option on squid.conf or in the /etc/resolv.conf file, the list of DNS name servers are taken from the Windows registry, both static and dynamic DHCP configurations are supported.
awin32 is a native WIN32 Async I/O Squid fs module derived from aufs. Configuration in squid.conf is identical to aufs, but You nedd to specify 'awin32' instead 'aufs' as cache type.
acl blocklist url_regex -i "c:/squid/etc/blocked1.txt"
redirect_program c:/perl/bin/perl.exe c:/squid/libexec/redir.pl
redirect_program c:/winnt/system32/cmd.exe /C c:/squid/libexec/redir.cmd