Sponsored Content
Top Forums Shell Programming and Scripting Shell script for running simultaneously two interfaces Post 302916269 by Corona688 on Monday 8th of September 2014 12:56:10 PM
Old 09-08-2014
The traditional way to check if a process is running is PID files. When you start it, arrange for a file containing its PID to be created to reference later. This avoids the ps | awk | grep | sed | cut | kitchen | sink nonsense, and is a lot more portable, and allows you to run more than one of the same thing independently without them conflicting.

Code:
#!/bin/sh

# Often /var/run, but only root can write there
MYPIDFILE=/path/to/mypid.pid

if [ -f "$MYPIDFILE" ] && read -r PID "$PIDFILE" && ps "$PIDFILE" >/dev/null
then
          echo "Process is still running as PID $PID" >&2
          exit
fi

echo "Process is not running." >&2

# If your shell complains about 'disown', then your shell doesn't need it and it can be removed
/path/to/processtostart & disown # Assumes the process does not fork other PIDs

echo "$!" > "$MYPIDFILE"

echo "Now running as PID $!" >&2
exit

It's possible that your daemons are creating PID files somewhere already. Take a look around their files.
 

10 More Discussions You Might Find Interesting

1. Solaris

Running 2 apaches simultaneously

Hello, I want to run 2 apaches simultaneusly in a system, one operating with port 80 and the other one with 85, i already have the configuration files ready and i tryed something i saw in a manual, like this: first i start apache as normal: /usr/local/etc/httpd/bin/apachectl start the i... (2 Replies)
Discussion started by: sx3v1l_1n51de
2 Replies

2. Filesystems, Disks and Memory

Running 2 Drives simultaneously?

So I have yet another query which requires the genius of the users on Unix.com. Having asked around at my work (Tech company) No one can really answer my question thoroughly. My goal is to get 2 Hard drives running at the same time and allow me to switch between working on one to the other.... (4 Replies)
Discussion started by: Infidel
4 Replies

3. Solaris

Running from Shell Vs running from RC script

Hi, i have a script which need to do behave differently when run as a startup process from init.d/ rc2.d script and when run manually from shell. How do i distinguish whether my script is run by init process or by shell?? Will the command /proc/$$/psinfo | grep "myscript" work well???... (2 Replies)
Discussion started by: vickylife
2 Replies

4. Shell Programming and Scripting

Shell script running command in different shell

Hi All, Is there any way where we can run few commands with different shell in a shell script ? Let's have an example below, My first line in script reads below, #!/bin/sh However due to some limitation of "/bin/sh" shell I wanted to use "/bin/bash" while executing few... (9 Replies)
Discussion started by: gr8_usk
9 Replies

5. IP Networking

Eth interfaces UP but NOT RUNNING

Hi people, I have a solaris OS system. I configured its interfaces. They are UP but not in RUNNING status except loopback interface. I made the interfaces DOWN and UP again. The other side of the interfaces (switch ports) are UP. Does anyone have any idea? What may cause this problem, How can I... (1 Reply)
Discussion started by: hubatuwang
1 Replies

6. Red Hat

Ssh error while two interfaces are up simultaneously

hi all, my system having two interfaces of 172.16.1.232 and 10.250.41.10 and i am using this to establish tunnel to our client network. eth0=10.250.41.10 eth1=172.16.1.232 I am not able to connect when two interfaces are up root@mind-41 ~]# ssh -l avytla 172.16.80.203 ssh:... (2 Replies)
Discussion started by: muzaffar.k
2 Replies

7. Shell Programming and Scripting

Executing multiple ssh commands inside a shell simultaneously

I would like to execute a commands in four different servers through ssh at a single instance(simultaneously). Below are the details with examples, ssh user1@server1 "grep xxxx logs" ssh user1@server2 "grep xxxx logs" ssh user1@server3 "grep xxxx logs" Each statement will take some... (4 Replies)
Discussion started by: Amutha
4 Replies

8. Shell Programming and Scripting

Changing shell from a script and running something from the new shell

Hi We use "tcsh" shell . We do the following steps manually: > exec ssh-agent zsh > python "heloo.py" (in the zsh shell) I am trying to do the steps above from a shell script This is what I have so far echo "Executing " exec ssh-agent zsh python "hello.py" exit 0 Problem is... (5 Replies)
Discussion started by: heman82
5 Replies

9. Shell Programming and Scripting

Run 2 shell scripts simultaneously from one script

i Run 2 scripts on all of around 50 nodes every day. 1.Mod_1.sh 2.Mod_2.sh eg.. i run file with specific node no like Mod_1.sh NODE_(node number) Mod_2.sh NODE_(node number) I want to run both file by using single script with unique node number. Eg.. Mod_new.sh NODE_(node... (11 Replies)
Discussion started by: Ganesh Mankar
11 Replies

10. Shell Programming and Scripting

Cp not working in shell script but running perfectly from shell

Dear All, I have script. Dest="" IFS=' ' for translation in $(echo $MY_MAP) do t1=$(echo $translation | cut -d"=" -f1) t2=$(echo $translation | cut -d"=" -f2| cut -d"," -f1) if then Dest=$UNX/$u_product_path/$u_study_path/$UNXTR/$t2 break; ... (4 Replies)
Discussion started by: yadavricky
4 Replies
lfcompile64(5)						Standards, Environments, and Macros					    lfcompile64(5)

NAME
lfcompile64 - transitional compilation environment DESCRIPTION
All 64-bit applications can manipulate large files by default. The transitional interfaces described on this page can be used by 32-bit and 64-bit applications to manipulate large files. In the transitional compilation environment, explicit 64-bit functions, structures, and types are added to the API. Compiling in this environment allows both 32-bit and 64-bit applications to access files whose size is greater than or equal to 2 Gbyte ( 2**31 bytes). The transitional compilation environment exports all the explicit 64-bit functions (xxx64()) and types in addition to all the regular func- tions (xxx()) and types. Both xxx() and xxx64() functions are available to the program source. A 32-bit application must use the xxx64() functions in order to access large files. See the lf64(5) manual page for a complete listing of the 64-bit transitional interfaces. The transitional compilation environment differs from the large file compilation environment, wherein the underlying interfaces are bound to 64-bit functions, structures, and types. An application compiled in the large file compilation environment is able to use the xxx() source interfaces to access both large and small files, rather than having to explicitly utilize the transitional xxx64() interface calls to access large files. See the lfcompile(5) manual page for more information regarding the large file compilation environment. Applications may combine objects produced in the large file compilation environment with objects produced in the transitional compilation environment, but must be careful with respect to interoperability between those objects. Applications should not declare global variables of types whose sizes change between compilation environments. For applications that do not wish to conform to the POSIX or X/Open specifications, the 64-bit transitional interfaces are available by default. No compile-time flags need to be set. Access to Additional Large File Interfaces Applications that wish to access the transitional interfaces as well as the POSIX or X/Open specification-conforming interfaces should use the following compilation methods and set whichever feature test macros are appropriate to obtain the desired environment (see stan- dards(5)). o Set the compile-time flag _LARGEFILE64_SOURCE to 1 before including any headers. o Use the getconf(1) command with one or more of the following arguments: +------------------+----------------------------------------+ | argument | purpose | |LFS64_CFLAGS | obtain compilation flags necessary to | | | enable the transitional compilation | | | environment | |LFS64_LDFLAGS | obtain link editor options | |LFS64_LIBS | obtain link library names | |LFS64_LINTFLAGS | obtain lint options | +------------------+----------------------------------------+ EXAMPLES
In the following examples, the transitional compilation environment is accessed by invoking the getconf utility with one of the arguments listed in the table above. The additional large file interfaces are accessed either by specifying -D_LARGEFILE64_SOURCE or by invoking the getconf utility with the arguments listed above. The example that uses the form of command substitution specifying the command within parentheses preceded by a dollar sign can be executed only in a POSIX-conforming shell such as the Korn Shell (see ksh(1)). In a shell that is not POSIX-conforming, such as the Bourne Shell (see sh(1)) and the C Shell (see csh(1)), the command must be enclosed within grave accent marks. Example 1: An example of compiling a program using transitional interfaces such as lseek64() and fopen64(): $ c89 -D_LARGEFILE64_SOURCE $(getconf LFS64_CFLAGS) a.c $(getconf LFS64_LDFLAGS) $(getconf LFS64_LIBS) Example 2: An example of running lint on a program using transitional interfaces: % lint -D_LARGEFILE64_SOURCE `getconf LFS64_LINTFLAGS` ... `getconf LFS64_LIBS` SEE ALSO
getconf(1), lseek(2), fopen(3C), lf64(5), standards(5) SunOS 5.10 26 Jan 1998 lfcompile64(5)
All times are GMT -4. The time now is 09:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy