Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

shell-init: error retrieving current directory: getcwd -- The usual fixes do not wor

I have a simple script:

#!/bin/bash for server in $(~/.ansible/ansible_hosts) do     ssh $server "hostname; readlink /opt/mydir/mylink;" done 

It works fine - the program returns the correct hostname and link - except that I get the following error on some but not all of the servers:

shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory

All the directories exist. One of the most common suggestions has been to add a cd, a cd -, or a cd /. All that happens when that step is added is an additional:

chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory

I tried kickstarting the nfs daemon on the off chance that there was some confusion about my homedir and substituted /etc/init.d in case the problem was with /opt. No difference

This would simply be an annoyance except that when I try to use an ansible playbook instead of a simple ssh command it fails for that server.

Any insights would appreciated.

like image 706
Todd Ellner Avatar asked Apr 01 '15 17:04

Todd Ellner


1 Answers

I believe the error is not related to the script at all. The issue is: the directory at which you are when you try to run the script does not exist anymore. for example you have two terminals, cd somedir/ at the first one then mv somedir/ somewhere_else/ at the second one, then try to run whatsoever in the first terminal - you'll receive this error message.

Please note you'll get this error even if you re-create directory with the same name because the new directory will have different inode index.

At least this was in my case.

like image 65
Putnik Avatar answered Sep 21 '22 23:09

Putnik