The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
How to log start/stop time of ALL processes bluesky099 UNIX for Advanced & Expert Users 10 12-18-2007 12:01 AM
how to stop to current directory using find james_falco UNIX for Dummies Questions & Answers 1 07-17-2007 08:43 PM
Search term and output term in desired field Raynon Shell Programming and Scripting 28 03-04-2007 02:34 AM
Checking before start and stop processes maldini Shell Programming and Scripting 3 07-22-2005 02:35 AM
Stop Printing Please cubicle^dweller UNIX for Dummies Questions & Answers 4 11-10-2002 12:45 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-23-2009
ku@ntum ku@ntum is offline
Registered User
  
 

Join Date: May 2007
Posts: 10
Question How to stop other processes and kernel from printing output on current virtual term

Hello All,

Background
========
I am creating a virtual appliance console for a software stack on VMware ESXi. I am using Centos 5.x as the Linux distro (Guest OS). I have created a ncurses based application that does the user authentication and present him with some basic controls to do basic system administration. This application will be setup to lunch automatically from mingetty as it is happening now. We have made the configuration to launch the application on tty1 automatically after each system restart.

The Issue
=======
The issue which is hindering us alot are the kernel and other processes outputs that get printed on tty1 when it is active. Well it is a normal behavior that all kernel info, warnings and error messages are goes to the current active virtual console. But this also destroy our ncurses based application UI that supposed to run all the time on the tty1.

The Question
==========
So my question is that can we in Linux (kernel:2.6, distro:Centos5.x) stop kernel and other processes to output their text to our terminal (i.e. tty1), and also redirect all the output to tty1 except ours to some other VC such as tty2.

Kindly respond anyone. We are in deep trouble due to this issue.
Thanks

Kashif Ali Siddiqui
Linux Developer
  #2 (permalink)  
Old 06-23-2009
jim mcnamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Location: NM
Posts: 5,753
This is not a programming solution:

1. edit your /etc/syslog.conf file to turn off all of the syslog messages that display there. This does not stop other kernel output.

2. For that you can play with klogd errorlevel settings. Start klogd with something like
Code:
klogd -c 4
This limits console displays to severe errors only. KERN_ERR level messages I believe.
Read your man page for klogd and syslog before tinkering. DO NOT GO ANY LOWER.

Both of these suggestions have downsides - they shut off the flow of information which a lot of sysadmins find useful. They also require a custom setup script if this is a product that goes to customers who are not Linux savvy.
  #3 (permalink)  
Old 06-23-2009
ku@ntum ku@ntum is offline
Registered User
  
 

Join Date: May 2007
Posts: 10
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
Reply

Bookmarks

Tags
console, linux, terminal

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 01:08 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0