In a bash script, I'm using kill -0 to test if I have permission to kill a process. There are 3 cases:
- the process exists and I have permission: OK
- the process doesn't exist and it's OK (because I decided to ignore processes that are already dead).
- I don't have permission and I want to raise an error.
If I use ps $pid, I cannot tell the difference between a process that does not exist and a process I cannot "see":
If I use kill -0 $pid, I could tell the difference reading stderr but it would be language specific: Question: How can I programmatically tell if a process exists and if I have permission on it?
I wasn't sure if I should post it here of in the Shell Script category, but I figured it was definitely a newbie question.
I'm trying to write a script that will check for the existence of a specific file (or for any files within the directory) and then take specific actions. I've removed all... (2 Replies)
Hey all,
I have total new with shell scripting so I don't know if what I need to do even possible, here it is...for a duration of time (say...1 hour) I need to check for the existence of a particular file, if it exists then I will invoke a java program or I will continue to check until a)... (2 Replies)
Hello,
I have this process app.fcgi and a directory containing images. I'd like to ensure that only app.cgi can access those images and more generally that folder.Thanks! (1 Reply)
Hi
I want to check a particular file is available or not. But i know only the pattern of that file sat AB1234*.txt.I need the latest file name and it ll be used in the script. How can i do this using ls -ltr command.
Thanks,
LathishSundar V (2 Replies)
Hi,
I want to make a bash script which is running like :
1.sh http://www. google.com
and check if the url does exist printing a message.
I want to save the source code of this page in a file.
Could you help me ? (4 Replies)
Hi
I'm using the below command in shell script to check for file exists in the path
if
.....
fi
path and test are variables
path and the file exists but the commands inside if condition is executed (! operator used)
Is the above way of checking for file existence is correct?
... (4 Replies)
Hope someone can help me on this
In a directory ,files are dynamically generated.I need a script to do the following
if files are not received for more than 2 hours or if the received file is empty
then do something
How can I put that in a script.Thank you
eg. in cd /dir_name the... (13 Replies)
I'm on AIX. I have triggered an infinite loop process (to keep looking for input file availability for further process). At present only I can kill the process.
In case my colleague wants to kill the process for any reason, how do I provide permission to others to kill the process?
Currently... (3 Replies)
Discussion started by: krishmaths
3 Replies
LEARN ABOUT FREEBSD
kill
KILL(2) BSD System Calls Manual KILL(2)NAME
kill -- send signal to a process
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <signal.h>
int
kill(pid_t pid, int sig);
DESCRIPTION
The kill() system call sends the signal given by sig to pid, a process or a group of processes. The sig argument may be one of the signals
specified in sigaction(2) or it may be 0, in which case error checking is performed but no signal is actually sent. This can be used to
check the validity of pid.
For a process to have permission to send a signal to a process designated by pid, the user must be the super-user, or the real or saved user
ID of the receiving process must match the real or effective user ID of the sending process. A single exception is the signal SIGCONT, which
may always be sent to any process with the same session ID as the sender. In addition, if the security.bsd.conservative_signals sysctl is
set to 1, the user is not a super-user, and the receiver is set-uid, then only job control and terminal control signals may be sent (in par-
ticular, only SIGKILL, SIGINT, SIGTERM, SIGALRM, SIGSTOP, SIGTTIN, SIGTTOU, SIGTSTP, SIGHUP, SIGUSR1, SIGUSR2).
If pid is greater than zero:
The sig signal is sent to the process whose ID is equal to pid.
If pid is zero:
The sig signal is sent to all processes whose group ID is equal to the process group ID of the sender, and for which the process has
permission; this is a variant of killpg(2).
If pid is -1:
If the user has super-user privileges, the signal is sent to all processes excluding system processes (with P_SYSTEM flag set),
process with ID 1 (usually init(8)), and the process sending the signal. If the user is not the super user, the signal is sent to
all processes with the same uid as the user excluding the process sending the signal. No error is returned if any process could be
signaled.
For compatibility with System V, if the process number is negative but not -1, the signal is sent to all processes whose process group ID is
equal to the absolute value of the process number. This is a variant of killpg(2).
RETURN VALUES
The kill() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate
the error.
ERRORS
The kill() system call will fail and no signal will be sent if:
[EINVAL] The sig argument is not a valid signal number.
[ESRCH] No process or process group can be found corresponding to that specified by pid.
[EPERM] The sending process does not have permission to send sig to the receiving process.
SEE ALSO getpgrp(2), getpid(2), killpg(2), sigaction(2), sigqueue(2), raise(3), init(8)STANDARDS
The kill() system call is expected to conform to ISO/IEC 9945-1:1990 (``POSIX.1'').
HISTORY
The kill() function appeared in Version 7 AT&T UNIX.
BSD March 15, 2012 BSD