Date: Thu, 28 Sep 1995 16:31:30 +0900 From: Toshihiro Kanda <candy@fct.kgc.co.jp> To: FreeBSD-gnats-submit@freebsd.org Subject: bin/751: crontab(1): `crontab -e' exits on SIGINT Message-ID: <199509280731.QAA03741@xxx.fct.kgc.co.jp> Resent-Message-ID: <199509280750.AAA06711@freefall.freebsd.org>
index | next in thread | raw e-mail
>Number: 751
>Category: bin
>Synopsis: crontab(1): `crontab -e' exits on SIGINT
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Sep 28 00:50:01 PDT 1995
>Last-Modified:
>Originator: Toshihiro Kanda
>Organization:
candy@fct.kgc.co.jp (Toshihiro Kanda)
>Release: FreeBSD 2.0.5-RELEASE i386
>Environment:
$ uname -rms
FreeBSD 2.0.5-RELEASE i386
>Description:
When `crontab -e' invokes vi, ctl-C kills crontab but vi. Then
vi is left alone and things go strange.
>How-To-Repeat:
Assuming /bin/sh syntax oriented shell...
$ EDITOR=/usr/bin/vi crontab -e
then type ctl-C.
>Fix:
Crontab exec's ``/bin/sh -c /usr/bin/vi tmp'', and sh seems exit
by SIGINT. I wonder if crontab exec's vi directly. At least it
seems to fix this problem.
*** crontab.c.orig Tue May 30 12:47:04 1995
--- crontab.c Thu Sep 28 16:08:25 1995
***************
*** 404,411 ****
--- 404,414 ----
ProgramName);
exit(ERROR_EXIT);
}
+ /*
sprintf(q, "%s %s", editor, Filename);
execlp(_PATH_BSHELL, _PATH_BSHELL, "-c", q, NULL);
+ */
+ execlp(editor, editor, Filename, NULL);
perror(editor);
exit(ERROR_EXIT);
/*NOTREACHED*/
***************
*** 415,421 ****
--- 418,433 ----
}
/* parent */
+ {
+ void (*f[4])();
+ f[0] = signal(SIGHUP, SIG_IGN);
+ f[1] = signal(SIGINT, SIG_IGN);
+ f[2] = signal(SIGTERM, SIG_IGN);
xpid = wait(&waiter);
+ signal(SIGHUP, f[0]);
+ signal(SIGINT, f[1]);
+ signal(SIGTERM, f[2]);
+ }
if (xpid != pid) {
fprintf(stderr, "%s: wrong PID (%d != %d) from \"%s\"\n",
ProgramName, xpid, pid, editor);
>Audit-Trail:
>Unformatted:
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199509280731.QAA03741>
