mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-24 20:48:52 +02:00
support for creating pid files when going daemon mode.
Someone should really review it as it is my first experience in C.
This commit is contained in:
parent
d17c2e5f50
commit
ff924dbc0f
@ -92,6 +92,7 @@ struct vlc_t
|
||||
char * psz_homedir; /* configuration directory */
|
||||
char * psz_userdir; /* user's home directory */
|
||||
char * psz_configfile; /* location of config file */
|
||||
char * psz_pidfile;
|
||||
|
||||
/* Fast memcpy plugin used */
|
||||
module_t * p_memcpy_module;
|
||||
|
26
src/libvlc.c
26
src/libvlc.c
@ -419,6 +419,32 @@ int VLC_Init( int i_object, int i_argc, char *ppsz_argv[] )
|
||||
|
||||
p_vlc->p_libvlc->b_daemon = VLC_TRUE;
|
||||
|
||||
/* lets check if we need to write the pidfile */
|
||||
p_vlc->psz_pidfile = config_GetPsz( p_vlc, "pidfile" );
|
||||
|
||||
msg_Dbg( p_vlc, "p_vlc->psz_pidfile is %s", p_vlc->psz_pidfile );
|
||||
|
||||
if( p_vlc->psz_pidfile != NULL )
|
||||
{
|
||||
pid_t i_pid;
|
||||
FILE *pidfile;
|
||||
|
||||
i_pid = getpid();
|
||||
|
||||
msg_Dbg( p_vlc, "our PID is %d, writing it to %s", i_pid, p_vlc->psz_pidfile );
|
||||
|
||||
pidfile = utf8_fopen( p_vlc->psz_pidfile,"w" );
|
||||
if( pidfile != NULL )
|
||||
{
|
||||
utf8_fprintf( pidfile, "%d", (int)i_pid );
|
||||
fclose( pidfile );
|
||||
}
|
||||
else
|
||||
{
|
||||
msg_Err( p_vlc, "Cannot open pid file for writing: %s, error: %s", p_vlc->psz_pidfile, strerror(errno) );
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
pid_t i_pid;
|
||||
|
||||
|
@ -835,6 +835,10 @@ static char *ppsz_clock_descriptions[] =
|
||||
#define DAEMON_LONGTEXT N_( \
|
||||
"Runs VLC as a background daemon process.")
|
||||
|
||||
#define PIDFILE_TEXT N_("Write process id to file")
|
||||
#define PIDFILE_LONGTEXT N_( \
|
||||
"Writes proccess id into specified file.")
|
||||
|
||||
#define FILE_LOG_TEXT N_( "Log to file" )
|
||||
#define FILE_LOG_LONGTEXT N_( \
|
||||
"Log all VLC messages to a text file." )
|
||||
@ -1591,6 +1595,9 @@ vlc_module_begin();
|
||||
#if !defined(WIN32)
|
||||
add_bool( "daemon", 0, NULL, DAEMON_TEXT, DAEMON_LONGTEXT, VLC_TRUE );
|
||||
change_short('d');
|
||||
|
||||
add_string( "pidfile", NULL, NULL, PIDFILE_TEXT, PIDFILE_LONGTEXT,
|
||||
VLC_FALSE );
|
||||
#endif
|
||||
|
||||
add_bool( "file-logging", VLC_FALSE, NULL, FILE_LOG_TEXT, FILE_LOG_LONGTEXT,
|
||||
|
Loading…
Reference in New Issue
Block a user