mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 06:03:28 +00:00
Fix to safely kill only targeted scripts
This commit is contained in:
10
setup.pl
10
setup.pl
@@ -616,11 +616,17 @@ else {
|
|||||||
print STOP "else\n";
|
print STOP "else\n";
|
||||||
print STOP " echo Stopping Webmin server in $wadir\n";
|
print STOP " echo Stopping Webmin server in $wadir\n";
|
||||||
print STOP "fi\n";
|
print STOP "fi\n";
|
||||||
print STOP "pids=\`ps axww -o pid= -o command= | awk -v wd=\"$wadir/\" '\$0 ~ wd && \$0 !~ /miniserv\\.pl/ {print \$1}'\`\n";
|
print STOP "targets=\"stats.pl shellserver.pl\"\n";
|
||||||
|
print STOP "collect_pids() {\n";
|
||||||
|
print STOP " for s in \$targets; do\n";
|
||||||
|
print STOP " ps axww | grep \"$wadir/\" | grep \"/\$s\" | grep -v grep\n";
|
||||||
|
print STOP " done | awk '{print \$1}' | sort -u\n";
|
||||||
|
print STOP "}\n";
|
||||||
|
print STOP "pids=\$(collect_pids)\n";
|
||||||
print STOP "[ -n \"\$pids\" ] && kill \$pids 2>/dev/null || true\n";
|
print STOP "[ -n \"\$pids\" ] && kill \$pids 2>/dev/null || true\n";
|
||||||
print STOP "if [ \"\$1\" = \"--kill\" ]; then\n";
|
print STOP "if [ \"\$1\" = \"--kill\" ]; then\n";
|
||||||
print STOP " sleep 1\n";
|
print STOP " sleep 1\n";
|
||||||
print STOP " pids=\`ps axww -o pid= -o command= | awk -v wd=\"$wadir/\" '\$0 ~ wd && \$0 !~ /miniserv\\.pl/ {print \$1}'\`\n";
|
print STOP " pids=\$(collect_pids)\n";
|
||||||
print STOP " [ -n \"\$pids\" ] && kill -KILL \$pids 2>/dev/null || true\n";
|
print STOP " [ -n \"\$pids\" ] && kill -KILL \$pids 2>/dev/null || true\n";
|
||||||
print STOP "fi\n";
|
print STOP "fi\n";
|
||||||
print STOP "pidfile=\`grep \"^pidfile=\" $config_directory/miniserv.conf | sed -e 's/pidfile=//g'\`\n";
|
print STOP "pidfile=\`grep \"^pidfile=\" $config_directory/miniserv.conf | sed -e 's/pidfile=//g'\`\n";
|
||||||
|
|||||||
10
setup.sh
10
setup.sh
@@ -695,11 +695,17 @@ echo " echo Force stopping Webmin server in $wadir" >>$config_dir/.stop-init
|
|||||||
echo "else" >>$config_dir/.stop-init
|
echo "else" >>$config_dir/.stop-init
|
||||||
echo " echo Stopping Webmin server in $wadir" >>$config_dir/.stop-init
|
echo " echo Stopping Webmin server in $wadir" >>$config_dir/.stop-init
|
||||||
echo "fi" >>$config_dir/.stop-init
|
echo "fi" >>$config_dir/.stop-init
|
||||||
echo "pids=\`ps axww -o pid= -o command= | awk -v wd=\"$wadir/\" '\$0 ~ wd && \$0 !~ /miniserv\\.pl/ {print \$1}'\`" >>$config_dir/.stop-init
|
echo "targets=\"stats.pl shellserver.pl\"" >>$config_dir/.stop-init
|
||||||
|
echo "collect_pids() {" >>$config_dir/.stop-init
|
||||||
|
echo " for s in \$targets; do" >>$config_dir/.stop-init
|
||||||
|
echo " ps axww | grep \"$wadir/\" | grep \"/\$s\" | grep -v grep" >>$config_dir/.stop-init
|
||||||
|
echo " done | awk '{print \$1}' | sort -u" >>$config_dir/.stop-init
|
||||||
|
echo "}" >>$config_dir/.stop-init
|
||||||
|
echo "pids=\$(collect_pids)" >>$config_dir/.stop-init
|
||||||
echo "[ -n \"\$pids\" ] && kill \$pids 2>/dev/null || true" >>$config_dir/.stop-init
|
echo "[ -n \"\$pids\" ] && kill \$pids 2>/dev/null || true" >>$config_dir/.stop-init
|
||||||
echo "if [ \"\$1\" = \"--kill\" ]; then" >>$config_dir/.stop-init
|
echo "if [ \"\$1\" = \"--kill\" ]; then" >>$config_dir/.stop-init
|
||||||
echo " sleep 1" >>$config_dir/.stop-init
|
echo " sleep 1" >>$config_dir/.stop-init
|
||||||
echo " pids=\`ps axww -o pid= -o command= | awk -v wd=\"$wadir/\" '\$0 ~ wd && \$0 !~ /miniserv\\.pl/ {print \$1}'\`" >>$config_dir/.stop-init
|
echo " pids=\$(collect_pids)" >>$config_dir/.stop-init
|
||||||
echo " [ -n \"\$pids\" ] && kill -KILL \$pids 2>/dev/null || true" >>$config_dir/.stop-init
|
echo " [ -n \"\$pids\" ] && kill -KILL \$pids 2>/dev/null || true" >>$config_dir/.stop-init
|
||||||
echo "fi" >>$config_dir/.stop-init
|
echo "fi" >>$config_dir/.stop-init
|
||||||
echo "pidfile=\`grep \"^pidfile=\" $config_dir/miniserv.conf | sed -e 's/pidfile=//g'\`" >>$config_dir/.stop-init
|
echo "pidfile=\`grep \"^pidfile=\" $config_dir/miniserv.conf | sed -e 's/pidfile=//g'\`" >>$config_dir/.stop-init
|
||||||
|
|||||||
Reference in New Issue
Block a user