mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
New command line option -t
This commit is contained in:
parent
6ca89f0eb3
commit
378db17bee
@ -66,3 +66,6 @@ Axel Gruber <axel@agm.de>
|
|||||||
|
|
||||||
Arnold Niessen <niessen@iae.nl> <arnold.niessen@philips.com>
|
Arnold Niessen <niessen@iae.nl> <arnold.niessen@philips.com>
|
||||||
for translating the OSD texts to the Dutch language
|
for translating the OSD texts to the Dutch language
|
||||||
|
|
||||||
|
Jürgen Sauer <jojo@automatix.de>
|
||||||
|
for implementing the -t option to set the controlling terminal
|
||||||
|
3
HISTORY
3
HISTORY
@ -435,3 +435,6 @@ Video Disk Recorder Revision History
|
|||||||
- Fixed a problem with Daylight Saving Time when displaying the times of
|
- Fixed a problem with Daylight Saving Time when displaying the times of
|
||||||
recordings.
|
recordings.
|
||||||
- Added Dutch language texts (thanks to Arnold Niessen).
|
- Added Dutch language texts (thanks to Arnold Niessen).
|
||||||
|
- The new command line option -t can be used to set the controlling terminal
|
||||||
|
(thanks to Jürgen Sauer). This is especially useful when starting VDR through
|
||||||
|
an entry in /etc/inittab (see INSTALL).
|
||||||
|
5
INSTALL
5
INSTALL
@ -71,6 +71,11 @@ If the program shall run as a daemon, use the --daemon option. This
|
|||||||
will completely detach it from the terminal and will continue as a
|
will completely detach it from the terminal and will continue as a
|
||||||
background process.
|
background process.
|
||||||
|
|
||||||
|
When starting the program through an entry in /etc/inittab, use the --terminal
|
||||||
|
option to set the controlling terminal, as in
|
||||||
|
|
||||||
|
vdr:123:respawn:/usr/local/bin/vdr --terminal=/dev/tty8 -w 60
|
||||||
|
|
||||||
Automatic restart in case of hangups:
|
Automatic restart in case of hangups:
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
|
|
||||||
|
18
vdr.c
18
vdr.c
@ -22,7 +22,7 @@
|
|||||||
*
|
*
|
||||||
* The project's page is at http://www.cadsoft.de/people/kls/vdr
|
* The project's page is at http://www.cadsoft.de/people/kls/vdr
|
||||||
*
|
*
|
||||||
* $Id: vdr.c 1.54 2001/02/24 16:18:43 kls Exp $
|
* $Id: vdr.c 1.55 2001/03/31 10:18:25 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
@ -74,6 +74,7 @@ int main(int argc, char *argv[])
|
|||||||
const char *ConfigDirectory = NULL;
|
const char *ConfigDirectory = NULL;
|
||||||
bool DaemonMode = false;
|
bool DaemonMode = false;
|
||||||
int WatchdogTimeout = DEFAULTWATCHDOG;
|
int WatchdogTimeout = DEFAULTWATCHDOG;
|
||||||
|
char *Terminal = NULL;
|
||||||
|
|
||||||
static struct option long_options[] = {
|
static struct option long_options[] = {
|
||||||
{ "config", required_argument, NULL, 'c' },
|
{ "config", required_argument, NULL, 'c' },
|
||||||
@ -84,12 +85,13 @@ int main(int argc, char *argv[])
|
|||||||
{ "port", required_argument, NULL, 'p' },
|
{ "port", required_argument, NULL, 'p' },
|
||||||
{ "video", required_argument, NULL, 'v' },
|
{ "video", required_argument, NULL, 'v' },
|
||||||
{ "watchdog", required_argument, NULL, 'w' },
|
{ "watchdog", required_argument, NULL, 'w' },
|
||||||
|
{ "terminal", required_argument, NULL, 't' },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
int c;
|
int c;
|
||||||
int option_index = 0;
|
int option_index = 0;
|
||||||
while ((c = getopt_long(argc, argv, "c:dD:hl:p:v:w:", long_options, &option_index)) != -1) {
|
while ((c = getopt_long(argc, argv, "c:dD:hl:p:v:w:t:", long_options, &option_index)) != -1) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'c': ConfigDirectory = optarg;
|
case 'c': ConfigDirectory = optarg;
|
||||||
break;
|
break;
|
||||||
@ -117,9 +119,10 @@ int main(int argc, char *argv[])
|
|||||||
" 2 = errors and info, 3 = errors, info and debug\n"
|
" 2 = errors and info, 3 = errors, info and debug\n"
|
||||||
" -p PORT, --port=PORT use PORT for SVDRP (default: %d)\n"
|
" -p PORT, --port=PORT use PORT for SVDRP (default: %d)\n"
|
||||||
" 0 turns off SVDRP\n"
|
" 0 turns off SVDRP\n"
|
||||||
" -v DIR, --video=DIR use DIR as video directory (default is %s)\n"
|
" -v DIR, --video=DIR use DIR as video directory (default: %s)\n"
|
||||||
" -w SEC, --watchdog=SEC activate the watchdog timer with a timeout of SEC\n"
|
" -w SEC, --watchdog=SEC activate the watchdog timer with a timeout of SEC\n"
|
||||||
" seconds (default: %d); '0' disables the watchdog\n"
|
" seconds (default: %d); '0' disables the watchdog\n"
|
||||||
|
" -t TTY, --terminal=TTY controlling tty\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Report bugs to <vdr-bugs@cadsoft.de>\n",
|
"Report bugs to <vdr-bugs@cadsoft.de>\n",
|
||||||
DEFAULTSVDRPPORT,
|
DEFAULTSVDRPPORT,
|
||||||
@ -145,6 +148,8 @@ int main(int argc, char *argv[])
|
|||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 't': Terminal = optarg;
|
||||||
|
break;
|
||||||
case 'v': VideoDirectory = optarg;
|
case 'v': VideoDirectory = optarg;
|
||||||
while (optarg && *optarg && optarg[strlen(optarg) - 1] == '/')
|
while (optarg && *optarg && optarg[strlen(optarg) - 1] == '/')
|
||||||
optarg[strlen(optarg) - 1] = 0;
|
optarg[strlen(optarg) - 1] = 0;
|
||||||
@ -195,6 +200,13 @@ int main(int argc, char *argv[])
|
|||||||
abort();
|
abort();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
else if (Terminal) {
|
||||||
|
// Claim new controlling terminal
|
||||||
|
stdin = freopen(Terminal, "r", stdin);
|
||||||
|
stdout = freopen(Terminal, "w", stdout);
|
||||||
|
stderr = freopen(Terminal, "w", stderr);
|
||||||
|
}
|
||||||
|
|
||||||
isyslog(LOG_INFO, "VDR version %s started", VDRVERSION);
|
isyslog(LOG_INFO, "VDR version %s started", VDRVERSION);
|
||||||
|
|
||||||
// Configuration data:
|
// Configuration data:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user