opensm: Add command-line option --pidfile
PATCH 5/6 opensm: Add command-line option --pidfile
This option is necessary to control opensm from an LSB-compliant init script.
Signed-off-by Bart Van Assche <[email protected]>
--- opensm/main.c | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-)
opensm/main.c +26 -0
@@ -68,6 +68,7 @@ volatile unsigned int osm_exit_flag = 0;static volatile unsigned int osm_hup_flag =0 ;static volatile unsigned int osm_usr1_flag =0 ; +static char *pidfile;#define MAX_LOCAL_IBPORTS 64#define INVALID_GUID (0xFFFFFFFFFFFFFFFFULL)
@@ -498,10 +499,17 @@ static ib_net64_t get_port_guid(IN osm_opensm_t * p_osm, uint64_t port_guid)return attr_array[choice].port_guid; } +static void remove_pidfile (void ) +{ +if (pidfile) +unlink (pidfile); +} +static int daemonize (osm_opensm_t * osm) {pid_t pid;int fd; +FILE *f; fd =open ("/dev/null" ,O_WRONLY );if (fd <0 ) {
@@ -523,6 +531,18 @@ static int daemonize(osm_opensm_t * osm) }else if (pid >0 )exit (0 ); +if (pidfile) { +remove_pidfile (); + f =fopen (pidfile,"w" ); +if (f) { +fprintf (f,"%d\n" ,getpid ()); +fclose (f); + }else { +perror ("fopen" ); +exit (1 ); + } + } +close (0 );close (1 );close (2 );
@@ -649,6 +669,7 @@ int main(int argc, char *argv[]) {"console-port", 1, NULL, 'C'}, #endif {"daemon", 0, NULL, 'B'}, + {"pidfile", 1, NULL, 'J'}, {"inactive", 0, NULL, 'I'}, #ifdef ENABLE_OSM_PERF_MGR {"perfmgr", 0, NULL, 1},
@@ -887,6 +908,10 @@ int main(int argc, char *argv[])printf (" Creating new log file\n" );break ; +case 'J' : + pidfile = optarg; +break ; +case 'P' :SET_STR_OPT (opt.partition_config_file, optarg);break ;
@@ -1212,6 +1237,7 @@ int main(int argc, char *argv[]) Exit:osm_opensm_destroy (&osm);complib_exit (); +remove_pidfile ();exit (0 ); }
Signature · 6 lines
1.7.7 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): [email protected]
Hi Bart,
Quoted 3 lines · Bart Van Assche
This option is necessary to control opensm from an LSB-compliant init script.
This option should also be added to opensm.conf and documented in the man page.
-- Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html