Только расшириться немного... Можно выполнить код непосредственно в эти setTimeout
вызов, но как говорит @patrick, Вы обычно присваиваете функцию обратного вызова, как это. Время является миллисекундами
setTimeout(func, 4000);
function func() {
alert('Do stuff here');
}
Проверка списка запущенных процессов выполняется (даже с помощью основных утилит, таких как «ps») путем просмотра содержимого каталога / proc.
Таким образом, библиотека, которую вы используете, интересующий для запроса запущенных процессов такой же, как и для работы с любыми другими файлами и каталогами (например, sys
или os
, в зависимости от того, какой вкус вам нужен. Обратите особое внимание на os.path
, хотя он делает большую часть того, что вам нужно). Чтобы завершить процесс или иным образом взаимодействовать с процессами, вы отправляете им сигналы, что выполняется с помощью os.kill
. Наконец, вы запускаете новые процессы, используя os.popen
и друзей.
Поскольку вы сказали, что это сервер Linux, вызовите внешний ps двоичный файл обычно медленнее, использует больше ресурсов и более подвержен ошибкам, чем использование информации из / proc напрямую.
Поскольку никто не упоминал, есть один простой способ:
glob.glob('/proc/[0-9]*/')
Удачи.
подпроцесс Python http: //docs.python. org / library / subprocess.html может вам помочь. Если вы создаете процесс с подпроцессом, вы можете использовать функцию Popen.terminate (), чтобы остановить его.
Модуль ОС, вероятно, ваш друг. Есть os.kill
, например, чтобы убить процесс.
Что касается получения списка процессов, вы, вероятно, захотите выполнить командный интерпретатор ps
. Этот вопрос содержит дополнительную информацию по этому поводу.
Это то, что я использую. Он использует procfs (поэтому вы ограничены Unix-подобными системами, я думаю, не будет работать на Mac) и ранее упомянутый glob. Он также получает командную строку, которая позволяет идентифицировать процесс. Для остановки процесса вы можете использовать os.kill (signal.SIGTERM, pid)
. Для использования подпроцесса, пожалуйста, проверьте это сообщение Python, Popen и выберите - ожидание завершения процесса или тайм-аута
def list_processes():
"""
This function will return an iterator with the process pid/cmdline tuple
:return: pid, cmdline tuple via iterator
:rtype: iterator
>>> for procs in list_processes():
>>> print procs
('5593', '/usr/lib/mozilla/kmozillahelper')
('6353', 'pickup -l -t fifo -u')
('6640', 'kdeinit4: konsole [kdeinit]')
('6643', '/bin/bash')
('7451', '/usr/bin/python /usr/bin/ipython')
"""
for pid_path in glob.glob('/proc/[0-9]*/'):
# cmdline represents the command whith which the process was started
f = open("%s/cmdline" % pid_path)
pid = pid_path.split("/")[2] # get the PID
# we replace the \x00 to spaces to make a prettier output from kernel
cmdline = f.read().replace("\x00", " ").rstrip()
f.close()
yield (pid, cmdline)