Return ‘Not running' return code to enterprise manager or 0
Else
Return running return code to enterprise manager or 1
I think it the start is pretty straight forward
After the sleep part I am not 100% sure on how to get it too check again and if it is wrong return not running for example.
Thanks In Advance
Last edited by rbatte1; 08-14-2017 at 01:15 PM..
Reason: Removed gratuitous FONT formatting and added formatted lists and ICODE tags for the logic description to make it clear
Please become accustomed to provide decent context info of your problem.
It is always helpful to support a request with system info like OS and shell, related environment (variables, options), preferred tools, adequate (representative) sample input and desired output data and the logics connecting the two, and, if existent, system (error) messages verbatim, to avoid ambiguities and keep people from guessing.
I'm afraid I don't really understand what you want to implement. Your verbal specification deviates from your pseudo code. In the latter, you define the acc_command variable twice, but you don't run the apmccctrl.sh at all, neither with the start nor the status parameter. On top, your if statement has a syntax and a logical error; use test or [ to check for the exit status, and consider that a variable assignment always returns 0 (success).
EDIT: I have to correct myself: of course you can check a command's exit status without test or [ : if command; then ... ; still the remark applies that above wouldn't work ...
I have formatted your logic to hopefully make it easier to read and removed the excessive formatting. Please just write in plain text and use the formatting tools on this page directly to keep it all cleaner / clearer.
Can you confirm what language you are wanting to use? It could be ksh, bash, perl, or a variety of others which might have similar syntax but enough subtleties to make it difficult to know how to respond, for instance shell scripts usually use a return code zero for success whereas Perl uses a return of zero for a failure.
Please can you clarify what you need and what tools you are using.
I want to create a script when I am checking if apmccctrl.sh is running & if it isn't running I want to be able to start it up and check again.
If the shell script is running I want to be able to return a status of "running" or number 1 for example.
If found it isn't running I want it to try and start it up and wait 60 seconds to then again check if it has started up successfully or not.
If failed again I want it to return "not running or 0 for example so we are able to alert on it.
Hope this makes it easier to explain.
I am using Putty version 0.63
This is what I have created so far but even if I shutdown the apmccctrl.sh I still get a return code of 1.
Does the apmccctrl.sh script start up the processes in the background? Can you share it (wrapped in CODE tags, of course)
Some indenting of your code would help the clarity of the process, however I think that the first if statement is a syntax error in bash. Would it be better to use this:-
The spaces between [, the variables, the operator and the ] in an if statement is important. You were basically say "Can I assign a value to acc_status_check ?" rather that "Is the value of acc_status_check matching the given string?" which I assume is what you really want.
Now, the fun should begin because the message you get back from ${ACC_HOME} contains more than just the string you are looking for. This needs an exact match so your test will always fail. We can probably adjust for it though.
I would suggest adding the line below after each time you run ${ACC_HOME}:-
This should trim off everything after the first colon.
Do all these adjustments help? If not, can you:-
share the code for apmccctrl.sh
paste the output from running this script with the -x flag set, e.g. bash -x epagent_enterprise_manager_metrics.sh
Some indenting of your code would help the clarity of the process, however I think that the first if statement is a syntax error in bash. Would it be better to use this:-
The spaces between [, the variables, the operator and the ] in an if statement is important. You were basically say "Can I assign a value to acc_status_check ?" rather that "Is the value of acc_status_check matching the given string?" which I assume is what you really want
... ... ...
Thanks, in advance,
Robin
Hi Robin,
You are absolutely correct in noting that the if statement:
does not test whether or not the expansion of the variable acc_command yields the string between the double-quotes, but it is not a bash syntax error. That if statement will execute the commands in the then clause if the assignment statement:
completes successfully (which it will better than 99.44% of the time) or will execute the commands in the else clause otherwise. In other words it tests whether or not the assignment statement completed successfully instead of comparing two strings and testing whether those two strings are identical.
It is unfortunate that this isn't a syntax error because it can give newbies the impression that it was doing what they wanted with printing any diagnostics. But, the shell command language grammar is very simple and allows the exit status of any command to be used as the condition in an if statement. The fact that a valid assignment statement sort of looks like an improperly written test command just points out how important spacing, punctuation, and the choice of operators are when writing shell scripts.
Hello, i'm absolutely new to the whole Operating Systems thing. I am pretty much level 0.
My assignment is to "simulate the execution of a stream of processes by a computer system, one CPU, many terminals 12 disk drives, 30 public mailboxes.
The professor runs a series of inputs which is a... (1 Reply)
What I need to learn is how to use a script that launches background processes, and then kills those processes as needed.
The script successfully launches the script. But how do I check to see if the job exists before I kill it?
I know my problem is mostly failure to understand parameter... (4 Replies)
Hi all,
after reading the post:
* https://www.unix.com/solaris/101653-how-get-process-start-date-time-solaris.html
I wrote my perl script and it worked like a charm.
This script is called every 5 minutes by the monitoring server crontab and is executed on the remote network elements via ssh (the... (6 Replies)
Hi all,
I'm doing automation task for my team and I just started to learn unix scripting so please shed some light on how to do this:
1) I have 2 sets of datafiles - datafile A and B. These datafiles must be loaded subsequently and cannot be loaded concurrently.
2) So I loaded datafile A... (10 Replies)
Hi !
I want to start and stop a process... on different machines(HOSTS)
example :
I have machine1..machine2..machine3
And I have a NFS file system. (Wlsuite/myfile/)
I'm writing a script that will start processes in machine1.... machine2....
Preferably.. I dont want to log... (1 Reply)
Hi all,
I like to know how can I get currenlty running process start time and date , I know only porcess id in solaris and hp-ux
and
what is command to get same using ps with switch.
Thanks
Naeem (1 Reply)