> On May 21, 2015, at 8:12 AM, Karl Kuehn <[email protected]> wrote:
> 
> 
>> On May 20, 2015, at 3:14 PM, Carl Hoefs <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> From a bash script I launch an app, but I only want this behavior if the 
>> user is locally logged in at the console. If the user has ssh’d into the 
>> machine and is running the bash script, the app launch should not be 
>> attempted (it will fail since the user doesn’t ‘own’ the screen).
> 
> 
>       What is the trigger event for your script? If it is login, then you can 
> just use the launch-agent part of launchd to make this distinction. The 
> `LimitLoadToSessionType` key take “Aqua” and “StandardIO” to differentiate 
> between GUI and non-GUI (e.g.: ssh) sessions. There are also “Background” 
> that apply to all types of logins, and "LoginWindow” that only runs in that 
> context.
> 

The user invokes the script directly (it’s a ‘command’ that resides in 
/opt/local/bin). It processes many large data files and then — if the user is 
local to the machine — displays a graphical analysis of the results onscreen by 
launching an app; otherwise a textual representation is output in the user’s 
shell. So launchctl isn’t involved. 

Trying to open an app when the user isn’t logged in at the console produces:

LSOpenURLsWithRole() failed with error -10810

Checking the $SSH env var works, but I was thinking that there might be a 
dedicated method to make this determination, which of course I would prefer to 
use. Apparently, there isn’t, so checking the env var will suffice.

-Carl


_______________________________________________
MacOSX-talk mailing list
[email protected]
http://www.omnigroup.com/mailman/listinfo/macosx-talk

Reply via email to