Forum Discussion

Nikoolayy1's avatar
Jan 17, 2023

iCall script triggers error need ${HOME} to run

I have checked article and for iCall scripts.


I am trying to execute a linux command on F5 HA device sync messages with an icall script when I see a particular device sync message  but I get the below error:

Ltm log:

014f0013:3: Script (/Common/xxx_sync) generated this Tcl error: (script did not successfully complete: (xxx: need ${HOME} but not set and no default

Audit log:

Jan 17 04:30:47 xxxx notice scriptd[14290]: 014f0005:5: AUDIT - user=root action="event-triggered handler, run script: /Common/xxx_sync" status="script did not successfully complete: (xxx: need ${HOME} but not set and no default



root@(xxx)(cfg-sync Standalone)(Active)(/Common)(tmos)# list sys icall
sys icall handler triggered xxx_sync {
script xxx_sync
subscriptions {
xxx_sync {
event-name xxx_sync
sys icall script xxx_sync {
app-service none
definition {
exec bash /var/tmp/
description none
events none


I tried triggering the script with "exec bash <bash script>", so that it is not the linux command directly in the bash field but still the same error and when I run the command or script no issues, so I think the the icall script process/user just does not have a $HOME directory like me, so when it runs the Linux command or script I get the error as the command wants $HOME directory.


Any ideas how to set the iCALL scriptd process's HOME directory? Strange that iCALL seems to use the root user and the home dir should be root.


[root@xxxxx:Active:Standalone] tmp # cat /etc/passwd
admin:x:0:500:Admin User:/home/admin:/bin/false
vcsa:x:69:69:virtual console memory owner:/dev:/sbin



4 Replies

  • What happens if you call the shell script directly? An example would be "exec /var/tmp/" ... does that retain the environment variable to allow it to run successfully?

    • If i run the script myself yes there is no issue as that is the first thing I checked but I have now some leads, so I will do more testing. Still I used "bash" or "./" for personal tests, so maybe the "exec" changes the shell, so a nice suggestion.

      • G-Rob's avatar
        Icon for Employee rankEmployee

        I don't think "exec" necessarily changes the shell, but "exec bash" vs "exec" would launch a child BASH process, most likely without the environmental variables you need. Can you try without specifying bash and let me know how it goes?