summaryrefslogtreecommitdiff
path: root/srcx/jkill.c
diff options
context:
space:
mode:
authorStef Walter <stef@memberwebs.com>2004-05-18 17:30:47 +0000
committerStef Walter <stef@memberwebs.com>2004-05-18 17:30:47 +0000
commit811897239f2f63dc4e4f67e81f3236e5aa1d870f (patch)
tree05833d178ac7bed7552c958b9e5789452616206d /srcx/jkill.c
parent6dd6bb17ea5bbfe539c1f8a87bf92286e0b15d1f (diff)
Some argument changes.
Documentation files.
Diffstat (limited to 'srcx/jkill.c')
-rw-r--r--srcx/jkill.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/srcx/jkill.c b/srcx/jkill.c
index fd3c110..3d30c48 100644
--- a/srcx/jkill.c
+++ b/srcx/jkill.c
@@ -34,7 +34,7 @@ int g_quiet = 0;
int g_verbose = 0;
static void kill_jail_processes(kvm_t* kd, int sig);
-static int kill_jail(const char* jail, int restart, int force);
+static int kill_jail(const char* jail, int usescripts, int restart, int force);
static int check_running_processes(kvm_t* kd);
static void usage();
@@ -45,9 +45,10 @@ int main(int argc, char* argv[])
int restart = 0;
int force = 0;
int verbose = 0;
+ int usescripts = 1;
pid_t child;
- while((ch = getopt(argc, argv, "fhqrt:v")) != -1)
+ while((ch = getopt(argc, argv, "fhkqrt:v")) != -1)
{
switch(ch)
{
@@ -60,6 +61,10 @@ int main(int argc, char* argv[])
warnx("the '-h' option has been depreciated");
break;
+ case 'k':
+ usescripts = 0;
+ break;
+
case 'q':
g_quiet = 1;
g_verbose = 0;
@@ -94,6 +99,9 @@ int main(int argc, char* argv[])
if(argc == 0)
usage();
+ if(!usescripts && restart)
+ usage();
+
if(running_in_jail())
errx(1, "can't run inside jail");
@@ -126,7 +134,7 @@ int main(int argc, char* argv[])
if(jail_attach(jid) == -1)
err(1, "couldn't attach to jail");
- r = kill_jail(argv[0], restart, force);
+ r = kill_jail(argv[0], usescripts, restart, force);
exit(r);
#ifdef _DEBUG
break;
@@ -155,7 +163,7 @@ static char* SHUTDOWN_ARGS[] = { _PATH_BSHELL, SHUTDOWN_SCRIPT };
#define START_SCRIPT "/etc/rc"
static char* START_ARGS[] = { _PATH_BSHELL, START_SCRIPT };
-static int kill_jail(const char* jail, int restart, int force)
+static int kill_jail(const char* jail, int usescripts, int restart, int force)
{
kvm_t* kd = NULL;
char errbuf[_POSIX2_LINE_MAX];
@@ -194,8 +202,8 @@ static int kill_jail(const char* jail, int restart, int force)
case 0:
/* Check if we have an executable shutdown script */
- if(check_jail_command(jail, SHUTDOWN_SCRIPT))
- run_jail_command(jail, SHUTDOWN_ARGS[0], SHUTDOWN_ARGS, cmdargs);
+ if(usescripts && check_jail_command(jail, SHUTDOWN_SCRIPT))
+ run_jail_command(jail, SHUTDOWN_ARGS[0], SHUTDOWN_ARGS, cmdargs);
break;
@@ -309,7 +317,8 @@ static int check_running_processes(kvm_t* kd)
static void usage()
{
- fprintf(stderr, "usage: killjail [-fqrv] [-t timeout] jailname ...\n");
+ fprintf(stderr, "usage: jkill [-fkqv] [-t timeout] jail ...\n");
+ fprintf(stderr, "usage: jkill -r [-fqv] [-t timeout] jail ...\n");
exit(2);
}