6

BetterTouchTool keeps exiting. How do I make sure that it reopens when it exits, and that duplicate processes aren't spawned?

Thanks

3
  • bettertouchtool.net
    – Ruskes
    Commented Apr 22, 2015 at 0:54
  • I want to understand this question better...are you saying that BTT exits and it's functionality stops meaning you have to relaunch? If you are concerned about a duplicate process, is the program no longer responding, yet there is an active process associated with it (aka it crashed)? What OS are you running?
    – Allan
    Commented Apr 29, 2015 at 19:40
  • @WalrustheCat When BTT crashes and PRIOR to you relaunching it can you provide us the system log. Launch "console" (Applications --> Utilities --> Console) and keep it running. When it crashes, open it up and post everything that happened in the last 10 mins or so.
    – Allan
    Commented Apr 29, 2015 at 20:06

2 Answers 2

2
+50

You could create a launch agent, that starts when you first log in and re-starts if exited. Although I’m sure the app has created one for it self, and some setting might not be set correctly. Create on is quite simple. Here is an example if BetterTouchTool was installed in /Applications folder, and had the executable in MacOS folder in the bundle. You’ll have to restart after creating and saving this plist file in ~/Library/LaunchAgents/ folder.

<?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>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>Label</key>
    <string>BetterTouchTool</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/BetterTouchTool.app/Contents/MacOS/BetterTouchTool</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

If you don't wish to restart, you can run this to start the agent:

launchctl load <path to the newly created plist file>

You can change the value of program argument to what ever you like and read more about launch agents by typing man launchd.plist in the Terminal. This will tell you about all the available options. There are also GUI apps to create these plist files for you, my favourite is Lingon X.

Though I would recommend you contact support for the app first, because this can result is in unexpected behaviour and mess with it’s functions. Like even if you force quit it now it’ll automatically launch (it depends on the value of SuccessfulExit key).

5
  • thanks @user14492. My reservation is, your plist file appears to KeepAlive on condition of SuccessfulExit? My problem is that the program (unsuccessfully) crashes, and I need to relaunch it? Promising answer. Commented Apr 29, 2015 at 19:47
  • @WalrustheCat If SuccessfulExit is true, the job will be restarted as long as the program exits and with an exit status of zero (successful). If false, the job will be restarted in the inverse condition. In you condition, it should be false because as you say it crashes. I though that it exited successfully. You can also completely remove SuccesfulExit, and set value of KeepAlive to true; that would restart all the time, but then it’ll be impossible to kill unless you disable/delete the plist file and restart. There is also a Crashed key for KeepAlive, you could implement that too.
    – user14492
    Commented Apr 29, 2015 at 20:04
  • @WalrustheCat Remember this is all untested, I don’t have BetterTouchTool, and don’t know why it crashes. You should prob take a look a the Console and see why it crashes, if you don’t understand it; it would always be helpful to developer to if shoot him a mail with the corresponding logs. I see on the site that BetterTouchTool is still in Beta for 10.10, so this is the reason why open Beta’s are done.
    – user14492
    Commented Apr 29, 2015 at 20:07
  • BetterTouchTool has bugs. It's known. The developer won't take any money or open source it, so it just has to be dealt with. Perfect answer, accepting. If I were you, I would edit the path to include .app and change the SuccessfulExit flag to false, as that recovers BTT from crashing. Very informative, thanks. Commented Apr 29, 2015 at 23:29
  • @user14492 I'm seeing this same issue with BTT; I don't actually see an existing launch agent. So there should be no conflicts by creating a launch agent for BTT.
    – Matt Ball
    Commented Jul 8, 2015 at 16:00
1

Open Terminal window and paste

while true; do open -Wg /Applications/BetterTouchTool.app; sleep 1; done
1
  • Is this going to cludge up my system? Seems like programming with a while true loop. Blocks everything. Commented Apr 29, 2015 at 19:48

You must log in to answer this question.

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