diff --git a/install b/install index 4f4853e6d0a931f82c7ebdacc62eae6983533e74..e9ecca34c406460295a8c5e6ba976d492ac0f63c 100755 --- a/install +++ b/install @@ -60,6 +60,7 @@ if test -e $TARGET; then fi mkdir -p $TARGET/{bin,scripts,logs} +mkdir -p $RTCDS/chans/tmp chmod 775 $TARGET/logs mkdir -p $TARGET/${system}epics/burt if [ -e $RTCDS/target_archive/${system}/${system}_$cur_date/${system}epics/burt ]; then diff --git a/src/epics/util/lib/IPCmonitor.pm b/src/epics/util/lib/IPCmonitor.pm index 4a976dff515559e81d889239cc62a81db93c0958..bbcd0831628d302aa006b69391fba5111f5f6fb4 100644 --- a/src/epics/util/lib/IPCmonitor.pm +++ b/src/epics/util/lib/IPCmonitor.pm @@ -1,5 +1,6 @@ package CDS::IPCmonitor; use Exporter; +use File::Path; @ISA = ('Exporter'); #// \page IPCx IPCx.pm @@ -227,11 +228,17 @@ my @ipcxMaxNum = (-999,-999,-999,-999); # Develop name of IPC parameter file based on return from above. #my ($i) = @_; - my $iFile = $::target; - $iFile .= "/chans/ipc/"; - $iFile .= $::ifo; - $iFile .= "\.ipc"; + my $iFilePath = $::target; + $iFilePath .= "/chans/ipc/"; + my $iFile .= $iFilePath . $::ifo; + $iFile .= "\.ipc"; # Open and input data from IPC parameter file + File::Path::make_path($iFilePath); + unless (-e $iFile) + { + open(TOUCH, ">>$iFile"); + close(TOUCH); + } open(IPCIN, "<$iFile") || die "***ERROR: IPCx parameter file $iFile not found\n"; chomp(@inData=<IPCIN>); close IPCIN; diff --git a/src/epics/util/lib/IPCx.pm b/src/epics/util/lib/IPCx.pm index c111009af1236fd4174dc12d7c821259c9efc74b..cf33f621973e9f8d562565cd9c8421fddc619a20 100644 --- a/src/epics/util/lib/IPCx.pm +++ b/src/epics/util/lib/IPCx.pm @@ -1,5 +1,6 @@ package CDS::IPCx; use Exporter; +use File::Path; @ISA = ('Exporter'); #// \page IPCx IPCx.pm @@ -331,12 +332,18 @@ if ($::ipcxCnt > 0) { # Develop name of IPC parameter file based on return from above. - #my ($i) = @_; - my $iFile = $::target; - $iFile .= "/chans/ipc/"; - $iFile .= $::ifo; - $iFile .= "\.ipc"; + #my ($i) = @_; + my $iFilePath = $::target; + $iFilePath .= "/chans/ipc/"; + my $iFile .= $iFilePath . $::ifo; + $iFile .= "\.ipc"; # Open and input data from IPC parameter file + File::Path::make_path($iFilePath); + unless (-e $iFile) + { + open(TOUCH, ">>$iFile"); + close(TOUCH); + } open(IPCIN, "<$iFile") || die "***ERROR: IPCx parameter file $iFile not found\n"; chomp(@inData=<IPCIN>); close IPCIN;