Programming :: Communicating From Subshell To Parent Shell
Mar 17, 2010
I am stuck at a issue in shell scripting. I had tried all the possible ways, yet unable to reach a solutions. I am working on a application, which runs on C shell. For this I had created a installation script, which installs my application in the system, it is working fine. Now, the problematic part is that I had set an alias in ".cshrc" file, which invokes my application when any user types it. But for an alias to take effect, I need to re-login into the system, because I have to read ".cshrc" file again, in order to take effect of my alias. However I can use "source ~/.cshrc" file after my installation, so that my aliasing works without logging back again. But Requirement is that, just after installing the application, alias should be available to user, without logging back again and without issuing any extra command.
I had tried one other way is that, I had created a symbolic link in ~/bin directory, which points to my application to be run, but even that require, to issue rehash command in order to modify internal command hash table. So, my overall problem is that changing alias in subshell should be reflected to parent shell,without running any other command (all commands should be run in installation script only). Or, in other way how to rehash parent shell from subshell. The ultimate requirement is that,the command that will run my application, should be available just after executing the installation script, either by aliasing or by rehashing, or by any other means.
View 9 Replies
ADVERTISEMENT
Apr 29, 2011
Is there any way to use "export" inside a bash script that will affect the variable in the parent process (i.e. the terminal where the script was run)?
View 5 Replies
View Related
Mar 18, 2010
I am facing a problem in Windows due to a virus called Newfolder.exe which creats files with the same name as it's parent directory and an extension .exe and this happens for every directory in the entire hierarchy in the infected pen drive. The antivirus detects them, but is sucking slow. So I thought this is a good opportunity to use the concepts of the all mighty shell script to remove those as they follow the same pattern. Say my complete path is
Code:
/home/pkd/fol1/
The virus would have created an file with complete paths
Quote:
/home/pkd/fol1.exe
If fol1 has two more directories fol11 and fol12 Then there would be two more .exe(virus created) in the following path
Quote:
/home/pkd/fol11/fol11.exe
/home/pkd/fol12/fol12.exe
View 1 Replies
View Related
May 21, 2009
Is there a way to export a variable to parent shell in shell scripting ?
View 3 Replies
View Related
Sep 8, 2010
I want to run some parts of a script in different terminals. I already found about subshell, () using parenthesis to group commands and using xterm -e (function), problem is I cannot get pid for the function running in the other terminal. And if I use & to set the job in background the terminal goes away as soon as it ends the job. I am using log files, and then send it them using built in mail. After all the parts finish I have to run the "main" script which needs the data from all the pieces. Also other question, i usually use bash, but to load a tool i need csh, the tool is not mine so i can not change the csh usage. There is anyway of passing bash scripts/commands at the moment of changing/invoking to csh shell in the same console?
View 14 Replies
View Related
Sep 28, 2010
The ipcs command shows the facilities of IPC in Linux, but it does not shows the processes that communicating to each others. How can I list the processes, which is currently communicating in IPC ?
View 6 Replies
View Related
Aug 8, 2011
Whenever I go inside a directory in Linux, it shows the file path at prompt like:
root@vivek-HP-Pavilion-dv6-Notebook-PC:/var/www/abc/def/
How can I change it to show short names instead?
View 1 Replies
View Related
Jun 1, 2011
I'm in a nested shell trying to use disown to re-root myself as well as a child. Looks like this:
Code:
# echo $$
1234
# disown 1234
disown: job not found: 1234
# disown $$
disown: job not found: 1234
# pgrep mychild
2222
# disown 2222
disown: job not found: 2222
This is in zsh. The goal is to have process 1 (the root of all processes) to become the parent.
View 3 Replies
View Related
Jun 29, 2010
is there a recursive shell or Perl script to delete files with the same name as the parent folder? i wish to include the starting folder name as argument to the script.
View 2 Replies
View Related
May 3, 2011
I keep getting a segfault in compiz. I've tried everything! This is from a fresh install without and accelerated drivers (I have ATI)
Quote:
Code:
**Switching to Compiz window management**
/usr/local/bin/compiz-indicator:99: GtkWarning: Can't set a parent on widget which has a parent
menu.append(kill)
/usr/local/bin/compiz-indicator:100: GtkWarning: Can't set a parent on widget which has a parent
menu.append(start)
[code]....
View 2 Replies
View Related
Oct 13, 2010
If a process forks its child and communicate with the child using pipe, do closing the write end of the pipe and terminating the writing process have the same effect?
View 3 Replies
View Related
Jun 28, 2010
i need C code to get child pids from its parent pid in linux and in kernel mode, is there anything like getpid() or getppid() which works in kernel mode?
View 2 Replies
View Related
Apr 13, 2010
I am writing a perl script where forking a child and the child is waiting for some response from C++ exe. Here is the code snippet:
Code:
my $retPid = fork;
if ($retPid) {
# I am parent ...
# Install signal handler
$SIG{CHLD} = &REAPER; ...
# sleep for a week (6 hours at a time)
for ($cnt = 0; $cnt < 28 ; $cnt++) {
select(undef, undef, undef, 21600);
last if ( ! -e "/proc/$retPid" ); } ...
} else {
# I am child
($iid, $rc, %data) = $cpp_exe->getResponse(604800); # 1 week timeout ... }
If the cpp_exe takes very long time (around 30 hours) to respond then the perl script (both parent and child) is dieing. The SIG{CHLD} handler defined in parent is not getting called. It seems parent is dieing first then child is dieing (or may be both dieing at the same time). Why the script is dieing?
View 1 Replies
View Related
Mar 22, 2011
I am going to create a parent process and fork a child process from it. I want to write a code in such a way that whenever my child process end it must indicate that the child process is terminated by a signal or not. This code must be written in the parent process block.
View 6 Replies
View Related
Mar 16, 2011
I have a problem with the last point of some homework I have for an OS class. I need the program to print the pid upon execution, then for 10 seconds react to SIGUSR1, SIGUSR2 and SIGTERM. If either USR1 or USR2 is received, the 10 seconds are reset. Some of the functions I'm told to use are alarm(), pause() and signal(). The nicest way I found was to handle SIGUSR1, SIGUSR2 and SIGALRM in the parent process, with SIGALRM killing the child (with a SIGTERM). In the child a pause() (or for(; pause() would be enough for it to be alive until killed from the SIGALRM handler in the parent.
What I found is that I can't just do a wait() in the parent process, waiting for the child to be killed, since whenever the parent receives a SIGUSR1 or SIGUSR2, the right handler is called but the child exits nicely. I tried blocking/ignoring those signals in the child, since the default behaviour for SIGUSR1 and SIGUSR2 is to terminate the process, but the result is the same. The only way I could do it is using a waitpid() within a do { } while(!WIFSIGNALED(status)) since when the child gets killed with the parent's kill(), it's WIFSIGNALED, whereas when it exits after the parent handles a SIGUSR1/2, it's WIFEXITED.
P.S. What I'm doing to achieve the expected 10s window is calling alarm(10) in the parent process and again within the SIGUSR1/2 handlers. In the SIGALRM handler I kill the child and within the child I simply do a for(; pause()
View 4 Replies
View Related
Feb 24, 2010
Code:
int main()
{
int pi;
int i=10;
pid=fork();
[code]....
Q 1. The value of the variable pid returned by the fork() function will be greater than 0 in the parent process and equal to zero in the child process? but during forking, there values are exactly copied so what's went wrong here?
Q 2. "changes to the variable in one process is not reflected in the other process" why it is so? >> Even if we have variable i declared as a pointer or a global it wont make a difference.
Code:
int main()
{
int i, pid;
i=10;
printf("before fork i is %d
[code]....
Q. Through this program it is clear that both process is using the data from the same location, so where's the original value is residing when the child process is in execution.?
View 6 Replies
View Related
Sep 15, 2010
What i am trying to do is i want to add numbers from 1 to 100. but that too using multiprocessing. So i made a c programme and using fork() command made two child processes. Now in one child process i am adding from 1 to 50. and in another i am adding 51 to 100. and then in the parent process adding the two results to get the final one. Now the result from the two function i am getting correctly. But after the wait() call the value returned is lost : See the programme below for reference
# include<stdio.h>
# include<unistd.h>
# include<sys/wait.h>
# include<stdlib.h>
[code].....
View 6 Replies
View Related
Dec 5, 2010
I'm starting bash shell script and I'm looping without any solution.
I'm trying to find some files under a folder hierarchy and in case of errors moving these files to a destination folder under the same hierarchy recreating this hierarchy if not exists.
Finding all ._* files under /src and moving them to /dest recreating folder1 or the others which contains ._* files but without moving files which does not correspond to the pattern.
Code:
I tried find command and I'am getting all needed files
Code:
But I don't know how to use the output to get the parent folder of files which are found to
1- create folder with mkdir -p /dest/folder1 or /dest/folder1/folder4
2- move found files from /src/... to /dest/... with rm command
I'm working on a find command as this trying to do all in the same line but ... little lost
Code:
View 8 Replies
View Related
Sep 23, 2009
i wanted to capture the stdout and stdin of a child process within a parent so that any output of child is sent to the parent and any input taken from the parent. code is simple enough and i have followed all code guidlines on the internet (some guidlines do differ also) my select call either hangs if i do not give a tmeout and with a timeout it returns 0 descriptors to be written to or read from:
below is the simple code for parent:
int main(void)
{
int outfd[2];
int infd[2];
[code].....
why select hangs without a timeout ... why can it not detect that the pipe is write ready i.e parent can write to it ... if it does not detect tha read pipe as having data...
View 5 Replies
View Related
Aug 30, 2010
I'm putting together a small bash script which uses diff in a sub shell.
RESULT=$(diff file1 file2)
This is the first time I've tried to return multiline output from a subshell - how can I get this to display as multiple lines instead of one?
View 4 Replies
View Related
Jun 5, 2011
I am trying to create a shell script similar to ls, but which only lists directories. I have the first half working (no argument version), but trying to make it accept an argument, I am failing. My logic is sound I think, but I'm missing something on the syntax.
Code:
if [ $# -eq 0 ] ; then
d=`pwd`
for i in * ; do
if test -d $d/$i ; then
echo "$i:"
code....
View 10 Replies
View Related
Jun 25, 2010
Is there some type of functional way to read things in the Python shell interpreter similar to less or more in the bash (and other) command line shells?
Example:
Code:
>>> import subprocess
>>> help(subprocess)
...
[pages of stuff to read]
...
I'm hoping so as I hate scrolling and love how less works with simple keystrokes for page-up/page-down/searching etc.
View 4 Replies
View Related
Sep 24, 2010
I was reviewing some scripts written by a person that does not work with us anymore and I found a chunk of code I'd like to know more about.
Code:
mycli <<! >> /var/myprogram.log
command_1
[code]...
View 2 Replies
View Related
Aug 6, 2011
I created a custom trap in my bashrc that will run a command in all open terminals. The problem is, after the command is executed, the cursor isn't preceded by the bash prompt (i.e., PS1); it's just on a blank line. If I hit Enter, I get the bash prompt back.
I've tried some basic things like echo -e " " > /dev/pts/1 with no luck. I also tried to see if there's a signal associated with the Enter key because then I could have sent the signal to all the terminals, but I didn't find a signal like that.
Is there a way to send a keystroke to another terminal, so that it thinks that I hit the Enter key directly in it?
Or, if this is easier, is there a way to get the terminal to print out PS1? Echo will just display its contents, but won't evaluate, and eval can't evaluate it.
Ideally, I don't have to install a package to get the behaviour I want. Is there anything built-in
View 8 Replies
View Related
Dec 15, 2009
I've created a simple script based menu. This menu will be accessed by only a certain users via ssh.When user logs in, the menu will automatically run. (configured at user's .bash_profile).How do I force the session to close when user hits Ctrl-C or Ctrl-Break ?In a nutshell, I don't want user to have access to shell.
View 11 Replies
View Related
Feb 10, 2010
Everytime I get HPLip working with my printer, it will only work until I shutdown the computer. On next restart, it no longer works and the only way to get it to work again is to delete the printer configs in hplip and re-create them!
View 2 Replies
View Related
Sep 2, 2010
I have been given a present of an Apple Ipad. Does anyone know if it is possible to get the Ipad to communicate with a PC running SUSE 11.3 instead of a Windows PC and if so how do you go about it?
View 1 Replies
View Related
Aug 24, 2010
I have ALFA awus036h wireless usb card which uses rtl8187 driver. after connecting it to my fedora13(64) machine and adjusting wicd preferences to enable wlan1 , i get the card connected to my wireless network, but actually cant browse any web site( the browser keep saying : looking up www.......), also PINGing return nothing. i tried handling the card using the built-in driver (kernel 2.6.33.6) and the driver shipped with the card, but both gave me the same result.
View 14 Replies
View Related
Mar 5, 2011
I am having trouble with computers communicating on the wireless lan. However, if I ssh into the wireless access point and then ssh into another computer on the wlan, that works fine. The draw backs to that is I am restricted to only ssh and without X forwarding. So what I would like to do is set up ssh port forwarding so that computer2 with vnc server 5900 on the lan will be accessible through 40000 on mycomputer using the wireless router's ssh as the go-between with ssh port forwarding. How can I accomplish that? Every time I read about this, I think I understand it, and but then I must have done something wrong because it's not working the way I thought. I have successfully done ssh port forwarding in the past without using a third computer as a go between. Both the wlan access point/router and computer2 are running an ssh server.
View 1 Replies
View Related
Apr 21, 2010
I have two systems located far from each other approximately 15 kilometers. They dont have communication between them only thing is phone.
The one system want to connect other using the telephone line using ADSL or simple modems. To transfer the files or to use VNC, RDP.
What linux, windows softwares presently supporting this feature. I Want to communicate between two systems without Internet but only with the phone lines.
establish the connection between two using phone line (without internet).
View 4 Replies
View Related