Sponsored Content
Top Forums Programming How to stop other processes and kernel from printing output on current virtual term Post 302327998 by ku@ntum on Tuesday 23rd of June 2009 06:53:39 AM
Old 06-23-2009
Kindly suggest how can I restrict kernel and other utilities that generate logs entries through klogd and syslog to a specific (fixed) virtual terminal.

Since /dev/tty1 will be hosting my application, I can open up /dev/tty2 to have all system wide log entries there. So is there any thing in kernel arguments, and/or in configuration that I can change/make to restrict all kernel output to a specific console.

Also I post this in programming forum, because in my application, I explicitly made the STDOUT(/dev/tty1) exclusive to my application, and redirect all the output to the /dev/tty2. Here is the code ...
Code:
bool TerminalSetup()
{
	bool bRet = false;
	
	if (ioctl(1, TIOCEXCL, 0) != 0)
	{
		printf("\n -- Error!!\nUnable to put the terminal into exclusive mode.. ");
	}
	
	int iFd = 0;	
        string ref_strRedirTerminal = "/dev/tty2";
	if ((iFd = open(ref_strRedirTerminal.c_str(), O_RDWR)) == -1) /* strange ... */
	{
		fprintf(stderr, "Could not open %s R/W (%s)\n", ref_strRedirTerminal.c_str(), strerror(errno));
		fflush(stderr);
		return false;		/* maybe above user limit? */
	}
	
	if (ioctl(iFd, TIOCCONS, 0))
	{
		fprintf(stderr, "Terminal redirection fails. (%s)\n", strerror(errno));
		fflush(stderr);		
	}
		
	close(iFd);
	
	bRet = true;	
	return bRet;
}

So what I get in result is that when I redirected an output to /dev/tty1 through echo as
Code:
echo "Testing ..." > /dev/tty1

the output did redirected to the /dev/tty2 as I made it explicit in my code. But when partition tables are re-synced from fdisk utility, the kernel outputs on the /dev/tty1 (as it was active then).

Hence the above code to make /dev/tty1 exclusive to my process, and redirect all output to /dev/tty2 fails partially.

So any thoughts then.

Kashif
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Stop Printing Please

what is the fastest approach to kill a print job ? if the lpstat command does not show the print job id .... aix (4 Replies)
Discussion started by: cubicle^dweller
4 Replies

2. Programming

Create a Term & Run chars on this Term

hi floks ! i'd like to know how can i transmete a character or a string from my source code to a term and make it interpret or un by the shell wich is running in my term. I'd like to create a Term from my code (and get its file descriptor) and then transmete each char typed on the keyboard to... (1 Reply)
Discussion started by: the_tical
1 Replies

3. Programming

current processes

Hi all, I'm running AIX 4.3.3. Is there a way in C++ to get a list of all current processes running on the processor? I have a manager daemon tracking all the software applications. They're using a system of healthchecks to update status. One intermittently is missing its healthcheck,... (1 Reply)
Discussion started by: jalburger
1 Replies

4. Shell Programming and Scripting

Checking before start and stop processes

Hi, I have 2 start and stop sh. Start sh -------- This will start few processes. Example code: echo "start process : lgz200 /pipe=test_jobs" nohup lgz200 /db=test/test1@test1 /pipe=test_jobs > ../log/lgz200_j.log & echo "echo \"stop process (pid=$!): lgz200 /pipe=test_jobs\"" >>... (3 Replies)
Discussion started by: maldini
3 Replies

5. Shell Programming and Scripting

Search term and output term in desired field

Hi All, I have an input_file below and i would like to use Perl to search for the term "aaa" and output the 3rd term in the same row as "aaa".For Example, i want to search for the term "ddd" and would want the code to ouput the 3rd term in the same row which is "fff". Can somebody help ? ... (28 Replies)
Discussion started by: Raynon
28 Replies

6. UNIX for Dummies Questions & Answers

how to stop to current directory using find

Hello, I just want to ask the following use of find command: 1. how can I find files only to the current directory? 2. how can I find files to directories and all subdiretories (are this include soft links?) but will not go to other mountpoints that is under that mountpoint. Im combining... (1 Reply)
Discussion started by: james_falco
1 Replies

7. UNIX for Advanced & Expert Users

How to log start/stop time of ALL processes

Hi all, I joined this forum today and this is my first question. I thank you all for viewing it. I will try to be brief. The OS: HP-UX B.11.11 U 9000/800 There are lot of cron scheduled perl scripts running on this server, which do different things at different time. Some of them process... (10 Replies)
Discussion started by: bluesky099
10 Replies

8. Solaris

How to start/stop processes

Please anyone tell me In my last interview the HR asks me how to monitor, start,stop & kill the various processes and subprocesses. Please anyone explain me clearly. It's my personal request (3 Replies)
Discussion started by: suneelieg
3 Replies

9. SuSE

List of processes/ which ones to stop

Hi there, I've install a testserver with SLES 11.0! I'll install/test XEN + WebServer not all things at the moment! In a first time, I'd like to stop all unuse processes... but I don't understand all processes! As someone a list of all processes with his signification and which should/could... (3 Replies)
Discussion started by: hiddenshadow
3 Replies

10. Shell Programming and Scripting

How to stop Sqlplus command from printing db connection details

Hi, Could someone tell me how to stop SQLPLUS command from printing the connection details in the console. Below is the lines i get in console when executing the sqlplus... SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 9 03:31:03 2011 Copyright (c) 1982, 2005, Oracle. All rights... (2 Replies)
Discussion started by: funonnet
2 Replies
VCS(4)							     Linux Programmer's Manual							    VCS(4)

NAME
vcs, vcsa - virtual console memory DESCRIPTION
/dev/vcs0 is a character device with major number 7 and minor number 0, usually of mode 0644 and owner root.tty. It refers to the memory of the currently displayed virtual console terminal. /dev/vcs[1-63] are character devices for virtual console terminals, they have major number 7 and minor number 1 to 63, usually mode 0644 and owner root.tty. /dev/vcsa[0-63] are the same, but using unsigned shorts (in host byte order) that include attributes, and prefixed with four bytes giving the screen dimensions and cursor position: lines, columns, x, y. (x = y = 0 at the top left corner of the screen.) When a 512-character font is loaded, the 9th bit position can be fetched by applying the ioctl(2) VT_GETHIFONTMASK operation (available in Linux kernels 2.6.18 and above) on /dev/tty[1-63]; the value is returned in the unsigned short pointed to by the third ioctl(2) argument. These devices replace the screendump ioctl(2) operations of console(4), so the system administrator can control access using file system permissions. The devices for the first eight virtual consoles may be created by: for x in 0 1 2 3 4 5 6 7 8; do mknod -m 644 /dev/vcs$x c 7 $x; mknod -m 644 /dev/vcsa$x c 7 $[$x+128]; done chown root:tty /dev/vcs* No ioctl(2) requests are supported. FILES
/dev/vcs[0-63] /dev/vcsa[0-63] VERSIONS
Introduced with version 1.1.92 of the Linux kernel. EXAMPLE
You may do a screendump on vt3 by switching to vt1 and typing cat /dev/vcs3 >foo Note that the output does not contain newline characters, so some processing may be required, like in old -w 81 /dev/vcs3 | lpr or (horrors) xetterm -dump 3 -file /proc/self/fd/1 The /dev/vcsa0 device is used for Braille support. This program displays the character and screen attributes under the cursor of the second virtual console, then changes the background color there: #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <sys/ioctl.h> #include <linux/vt.h> int main(void) { int fd; char *device = "/dev/vcsa2"; char *console = "/dev/tty2"; struct {unsigned char lines, cols, x, y;} scrn; unsigned short s; unsigned short mask; unsigned char ch, attrib; fd = open(console, O_RDWR); if (fd < 0) { perror(console); exit(EXIT_FAILURE); } if (ioctl(fd, VT_GETHIFONTMASK, &mask) < 0) { perror("VT_GETHIFONTMASK"); exit(EXIT_FAILURE); } (void) close(fd); fd = open(device, O_RDWR); if (fd < 0) { perror(device); exit(EXIT_FAILURE); } (void) read(fd, &scrn, 4); (void) lseek(fd, 4 + 2*(scrn.y*scrn.cols + scrn.x), 0); (void) read(fd, &s, 2); ch = s & 0xff; if (attrib & mask) ch |= 0x100; attrib = ((s & ~mask) >> 8); printf("ch='%c' attrib=0x%02x ", ch, attrib); attrib ^= 0x10; (void) lseek(fd, -1, 1); (void) write(fd, &attrib, 1); exit(EXIT_SUCCESS); } SEE ALSO
console(4), tty(4), ttyS(4), gpm(8) COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2007-12-17 VCS(4)
All times are GMT -4. The time now is 01:07 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy