On Apr 10, 2014, at 3:34 PM, Colas B wrote: > I am not an unix-ey guy... > > I don't specify explicitly a bash when I run my program (with NSTask) : I > just give the path to the program. If I discover the path to the shell being > used, does it mean that what used to be the path of my NSTask will become an > argument?
Yes--launchPath is set to the shell, and the rest become arguments. > About path and environment variable, I don't specify anything special when I > run my program from the terminal. Well, most shell configurations will come with a reasonably sensible environment, but I believe you get next to nothing when running an application. At a terminal prompt execute the "printenv" command to see the current environment. You could set the PATH variable on the task (using -setEnvironment:) and see if that works. If so, realize that this approach may be fragile in environments that you don't control (i.e. end-users). There also may be other variables needed... > Envoyé depuis Yahoo Mail pour iPad > > From: Keary Suska <cocoa-...@esoteritech.com>; > To: Colas B <colasj...@yahoo.fr>; > Cc: Cocoa-Dev (Apple) <cocoa-dev@lists.apple.com>; > Subject: Re: NSTask: program launching another program, potential problem > with path: how to do? > Sent: Thu, Apr 10, 2014 9:21:04 PM > > On Apr 10, 2014, at 2:52 PM, Colas B wrote: > > > Hi, > > > > thanks for your answers ! > > Your idea sounds good. What can I do if I want both shells invoked from > > programs and login shells to have the same initialization script? Shall I > > write a new script that runs first ~/.login and then myprogram ? Or is > > there a simplier way? > > > > In my case, myprogram is pdflatex (with the -shell-escape option) and > > myauxprogram is gnuplot. > > The best approach may be a complicated affair. IMHO it is better to > explicitly inject the environment that you want for the task, possibly with > preference settings to specify non-standard paths and additional environment > variables. The problem with setting a login-like environment is that you need > to know what shell is being used. There may be a way to discover that, and > then you could invoke myprogram via the shell. E.g.: > /path/to/bash -l -c myprogram arguments > > Syntax will likely be similar for all shells, and many IIRC will accept -l or > --login to designate a login shell. > > Note that this approach comes with a number of security implications, and > unix-ey folks like me would tell you to not do that and instead use the first > approach I mention. > > > Le Jeudi 10 avril 2014 16h32, Jens Alfke <j...@mooseyard.com> a écrit : > > > > On Apr 10, 2014, at 6:23 AM, Keary Suska <cocoa-...@esoteritech.com> wrote: > > > >> This is more likely a shell scripting issue, rather than am NSTask issue, > >> unless sandboxing is somehow interfering, and you are obscuring the issue > >> by not telling us at least how myprogram is locating myauxprogram. The > >> most likely culprit is that the invocation of myauxprogram in myprogram is > >> a relative path that relies on the PATH environment variable that is > >> properly set by the shell, but you don't set in NSTask. > >> > > > > Agreed. A problem I’ve run into several times is that shells invoked from > > programs are not login shells, so they don’t run the same initialization > > scripts as the shell you use in a terminal. (For instance, a csh login > > shell runs ~/.login on startup as well as ~/.cshrc, but a non-login shell > > doesn’t. A similar thing happens with bash but I can never remember which > > scripts are involved.) If you customize your $PATH in the login-shell > > startup script, then a shellscript run outside a terminal window won’t have > > the same path. > > > Keary Suska > > Esoteritech, Inc. > "Demystifying technology for your home or business" > Keary Suska Esoteritech, Inc. "Demystifying technology for your home or business" _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com