[squid-users] Can't start Squid with workers via systemd on CentOS 7
Amos Jeffries
squid3 at treenet.co.nz
Thu Mar 9 15:22:57 UTC 2017
On 10/03/2017 3:57 a.m., Alex Rousskov wrote:
> On 03/09/2017 07:00 AM, 段垚 wrote:
>> I installed Squid 4.0.18 on CentOS 7 X86_84 according to
>> http://wiki.squid-cache.org/KnowledgeBase/CentOS#Squid_Beta_release
>>
>> I add a line "workers 2" to `/etc/squid/squid.conf` (just a copy of
>> `squid.conf.default`)
>> and start squid via `systemctl start squid`, It seems squid is running,
>> except that it is not listening to the port 3128 (confirmed by netstat).
>>
>> However, if I start squid in command line (`squid -sYC`), squid does
>> listen to port 3128.
>>
>> There are some differences in `/var/log/squid/cache.log` for these two
>> cases:
>>
>> * start via `systemctl start squid`:
>>
>> 2017/03/09 21:12:54 kid3| commBind Cannot bind socket FD 12 to [::]: (98) Address already in use
>> 2017/03/09 21:12:54 kid2| commBind Cannot bind socket FD 21 to [::]: (98) Address already in use
>> 2017/03/09 21:12:54 kid1| commBind Cannot bind socket FD 21 to [::]: (98) Address already in use
>>
>> * start via `squid -sYC`:
>>
>> 2017/03/09 21:19:28 kid1| Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 15 flags=1
>> 2017/03/09 21:19:28 kid2| Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 15 flags=1
>>
>> The full logs are attached. Please help.
>
> Most likely, your systemctl script for Squid is broken. I do not know
> about CentOS 7 specifically, but many older scripts often start two
> modern Squids at once due to various backward compatibility problems
> with Squid startup interface and the way those scripts were written.
> Study/log what that script does and you will probably find the answer to
> your question.
Please check that you are using the squid.service file provided with
Squid-4 sources (under tools/systemd/squid.service). Remove the startup
scripts or any squid.service file created for Squid-3 versions, they are
usually wrong for Squid-4 with systemd.
After that you will need to carefully check that any previous attempts
to run Squid have been fully stopped and have not left any files (ie
.pid) or /dev/shm sockets behind before attempting to start Squid again.
HTH
Amos
More information about the squid-users
mailing list