41 lines
819 B
Bash
Executable file
41 lines
819 B
Bash
Executable file
#!/bin/bash
|
|
# Start the Anaconda's Python module $1.
|
|
#
|
|
# Examples:
|
|
# ./start-module pyanaconda.modules.boss
|
|
# ./start-module --env LD_PRELOAD=libgomp.so.1 pyanaconda.modules.payloads
|
|
#
|
|
|
|
# Process the arguments.
|
|
while true
|
|
do
|
|
case $1 in
|
|
# Set up the environment.
|
|
--env)
|
|
export $2
|
|
shift 2
|
|
;;
|
|
# Nothing else to do.
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Add Anaconda addons to the PYTHONPATH.
|
|
PYTHONPATH="$PYTHONPATH:/usr/share/anaconda/addons"
|
|
|
|
# Export the modified PYTHONPATH.
|
|
export PYTHONPATH
|
|
|
|
# Start a Python module in the detached mode.
|
|
python3 -m $1 &
|
|
module_pid="$!"
|
|
|
|
# Wait for a minute in the detached mode.
|
|
sleep 60 &
|
|
timeout_pid="$!"
|
|
|
|
# If the Python module fails before the timeout, return its exit status.
|
|
# Otherwise, return 0.
|
|
wait -n "${timeout_pid}" "${module_pid}"
|