http://qs321.pair.com?node_id=781621


in reply to Re: system call in crontab
in thread system call in crontab

In all cases, a script, assuming sh/ksh (& csh for all I know), can determine whether the shell is interactive by testing $- - if it contains the i switch, then it's an interactive shell - which is why the following is commonly seen at the end of a users .profile...
. . case "$-" in *i*) # Interactive shell exec bash ;; *) # Do nothing of the sort - non-interactive : ;; esac
Otherwise, any attempt to dot the .profile from a non-interactive shell causes the attempt to hang since the newly exec(1)ed shell will be waiting for input.

Having said that, any job started by cron will always be run non-interactively - such that if any output i.e. either STDOUT or STDERR, is not redirected, it will be mailed to the crontab(1M)s user.

I'm rather intrigued as to why the OP is attempting to start a GUI program using cron(1M) - if the intent is to create a background image, then .xinitrc or similar is place to start it or alternatively use the background property of the window manager.

A user level that continues to overstate my experience :-))