61

Sometimes I see a ksfetch process on my Mac. After a little googling I found out that it is Google software updater. However, there is no detailed answer i.e. what is ksfetch process used for? Is it really required? Can I get rid of it? Sometimes it uses my internet bandwidth so it frustrates me hence the query. Thanks.

2
  • Why not just block KSFetch with Little Snitch by denying connections? Would that work?
    – Frank
    Commented Feb 15, 2019 at 22:55
  • I had to use watch -n 0.1 pkill ksfetch cuz it was lagging all my zoom calls
    – byxor
    Commented Oct 28, 2022 at 9:14

8 Answers 8

66

Keystone Fetch / ksfetch

The ksfetch process on OS X is part of Google Chrome's update mechanism. The ks prefix is an abbreviation of Keystone. The process appears to be responsible for fetching updates to Google's products. It is this role that uses your bandwidth.

Using slick's answer you can disable the corresponding process that uses ksfetch.

Alternatively, it appears possible to adjust the frequency of update checks:

Entering the following code into your terminal will make it check once a week rather than every few hours:

defaults write com.google.Keystone.Agent checkInterval 604800

To learn more about, follow the links below:

3
17

Yes, you can disable it.

To do this just for you in Terminal type:

~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/Resources/install.py --uninstall

for all users:

/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/Resources/install.py --uninstall

On some machines it's ksinstall instead of install.py.

5
  • Thanks. Can you also answer other parts of the question like what is this process used for? Is it required? etc. Commented Sep 29, 2015 at 7:59
  • 3
    install.py is called ksinstall on my machine.
    – Lenar Hoyt
    Commented Jul 12, 2016 at 11:56
  • /Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/Resources/install.py: No such file or directory
    – rogerdpack
    Commented Nov 12, 2020 at 0:27
  • 1
    In bigSur ~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --nuke
    – vpuente
    Commented Jan 12, 2021 at 16:57
  • @vpuente Thanks for that. I was searching exactly for that and saw that the answear didn't apply anymore.
    – Lethargos
    Commented Dec 17, 2021 at 0:54
7

You can uninstall it, type /Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/Resources/ksinstall --help to see available options.

--nuke can uninstall everything related to it, just like this: /Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/Resources/ksinstall --nuke

4
  • What's the difference between uninstall and nuke?
    – Lenar Hoyt
    Commented Jul 12, 2016 at 11:56
  • Run that ksinstall --help command, you will find out. <br/> [--nuke] Remove Keystone and all tickets. [--uninstall] Remove Keystone program files but do NOT delete the ticket store.
    – Yiling
    Commented Jul 12, 2016 at 18:14
  • I had already removed it with the uninstall command so I cannot check without reinstalling everything. Thanks!
    – Lenar Hoyt
    Commented Jul 12, 2016 at 19:36
  • Should be ~/Library etc.
    – matt
    Commented Apr 5, 2018 at 10:32
5

They have changed this command to --nuke instead of --uninstall and the path is now different as well. So the new command for all users would be:

/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/Resources/ksinstall --nuke
1
  • 1
    Welcome to Ask Different. We like answers to stand on their own. Could you either edit this to explain the essence of the solution or perhaps edit the other answer with this update. Bonus points for identifying what version of the app needs the new command argument.
    – bmike
    Commented Mar 14, 2016 at 14:15
3

There is an issue with Google Chrome that it creates a temp file to check for updates every x hours. Since it's making a new temp file for some reason it sets off Little Snitch, which is quite annoying.

By entering the following code into Terminal, it will make it check once a week rather than every few hours:

defaults write com.google.Keystone.Agent checkInterval 604800

Hopefully one of the next versions of Google Chrome they will address this, as it is very annoying having to click allow/deny every x hours.

2

ksinstall didn't seem to do anything, no matter how many incantation of --nuke I used. Nor ksadmin.

This seemed to help:

 $ ps -ef | grep ksfetch
 501   976   855   0  3:54PM ??         0:00.09 /Users/user/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksfetch

then rename it

 sudo mv /Users/user/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksfetch /Users/user/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksfetch.dis

It goes away for "awhile"

If that doesn't work that this seems to help (if it's bandwidth you're concerned with):

 $ irb
 > loop { sleep 0.5; system("killall ksfetch") }

See also https://superuser.com/questions/1359017/how-do-i-disable-automatic-updates-of-google-chrome-on-mac-os-x/1453781#1453781

1

The simplest way to disable ksfetch is to uninstall Google Chrome. There are many other browsers.

0

Software update checks really shouldn't be using noticeable bandwidth or CPU, although actual Updates may, of course.

But this is Google software, a notorious RAM and disk space hog. (If you didn't know that Chrome archives old versions inside the current one, bloating at every update, here's a short summary of to how to fix it). So...

As a fan of the GUI approach, my instinct is always to open the .plist first, located in this case at:

~/Library/Preferences/com.google.Keystone.Agent.plist

com.google.Keystone.Agent.plist Here you can see the default SU checkInterval value is 18000 seconds (5 hours). With a suitable editor, or the terminal command in previous replies, you can change this to eg 604800 (7 days).

However, it's also possible to edit lastCheckStartDate and lastServerCheckDate, which I'm going to experiment with in case this fools Keystone into to laying low until a set date. Here I'm setting them one month in the future to see what happens.

com.google.Keystone.Agent.plist lastServerUpdateCheck

I've had major issues with Keystone in the past (and struggled to kill and completely remove it) and there are websites dedicated to claims that it slows Macs and causes high CPU usage on Window Server.

I can't comment on the current version. For now, I'm hoping that messing with the lastServerCheckDate will put the Keystone dragon to sleep until a predetermined date.

I'll post any insights I gain.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .