2
Unix SMB/CIFS implementation.
3
start/stop nmbd and smbd
4
Copyright (C) Andrew Tridgell 1998
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 3 of the License, or
9
(at your option) any later version.
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
16
You should have received a copy of the GNU General Public License
17
along with this program. If not, see <http://www.gnu.org/licenses/>.
21
#include "web/swat_proto.h"
22
#include "dynconfig.h"
25
/** Startup smbd from web interface. */
38
if (asprintf(&binfile, "%s/smbd", get_dyn_SBINDIR()) > 0) {
39
become_daemon(true, false);
40
execl(binfile, binfile, "-D", NULL);
58
if (asprintf(&binfile, "%s/nmbd", get_dyn_SBINDIR()) > 0) {
59
become_daemon(true, false);
60
execl(binfile, binfile, "-D", NULL);
65
/** Startup winbindd from web interface. */
66
void start_winbindd(void)
78
if (asprintf(&binfile, "%s/winbindd", get_dyn_SBINDIR()) > 0) {
79
become_daemon(true, false);
80
execl(binfile, binfile, NULL);
89
pid_t pid = pidfile_pid("smbd");
91
if (geteuid() != 0) return;
101
pid_t pid = pidfile_pid("nmbd");
103
if (geteuid() != 0) return;
105
if (pid <= 0) return;
111
void stop_winbindd(void)
113
pid_t pid = pidfile_pid("winbindd");
115
if (geteuid() != 0) return;
117
if (pid <= 0) return;
122
/* kill a specified process */
123
void kill_pid(struct server_id pid)
125
if (geteuid() != 0) return;
127
if (procid_to_pid(&pid) <= 0) return;
129
kill(procid_to_pid(&pid), SIGTERM);