#!/usr/bin/python
import subprocess
import shlex
proc = subprocess.Popen(shlex.split('command arg1 arg2 arg3'), stdout=subprocess.PIPE)
output = proc.stdout.read()
print output
Дополнительно замечу, что на хабре были подобные статьи. Особенно понравилась стать разработчика крутого сэма, который объяснял баг, когда на сцене рисовалось будущее (я уже точно не помню).
import concurrent.futures
def process_func(number):
return number * 2
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
data = executor.map(process_func, numbers)
print(' '.join(map(str, data)))
# prints
# 2 4 6 8 10 12 14 16 18
int i;
int k;
int w = 0;
- name: install 1C
apt:
deb: "{{ item }}"
with_items:
- /home/user/1C/1c-enterprise83-common_8.3.13-1865_amd64.deb
- /home/user/1C/1c-enterprise83-common-nls_8.3.13-1865_amd64.deb
- /home/user/1C/1c-enterprise83-server_8.3.13-1865_amd64.deb
- /home/user/1C/1c-enterprise83-server-nls_8.3.13-1865_amd64.deb
- /home/user/1C/1c-enterprise83-ws_8.3.13-1865_amd64.deb
- /home/user/1C/1c-enterprise83-ws-nls_8.3.13-1865_amd64.deb
- /home/user/1C/1c-enterprise83-crs_8.3.13-1865_amd64.deb
- /home/user/1C/1c-enterprise83-client_8.3.13-1865_amd64.deb
- /home/user/1C/1c-enterprise83-common-nls_8.3.13-1865_amd64.deb
ansible-playbook -vvv ...
. Там реально много полезного пишется, будет и команда которая падает с ошибкой. #include <stdio.h>
#include <iostream>
using namespace std;
int main() {
FILE *INFO_PC = nullptr;
char BUF[512] = { 0 };
INFO_PC = popen("lspci", "r");
if (!INFO_PC) {
cout << "ERROR!" << endl;
exit(1);
}
FILE *FILE_INFO_PC = fopen("desktop.cfg", "w");
if (!FILE_INFO_PC) {
cout << "ERROR!" << endl;
exit(1);
}
while (fgets(BUF, sizeof(BUF), INFO_PC)) {
puts(BUF);
bool write = fputs(BUF, FILE_INFO_PC);
if (!write) {
cout << "Failure on attempt to write data into file!" << endl;
exit(1);
}
}
fclose(FILE_INFO_PC);
}
- можно весь python скрипт запустить через sudo
- можно сделать, чтобы python скрпит передал пароль в дочерний процесс
- можно настроить sudo, чтобы "вот это конкретное" приложение не заправшивало пароль
- можно приложение запустить в качестве systemd сервиса и просто парсить логи потом
- может sudo вообще не нужен? просто добавить юзера в нужную группу и он получит доступ к файлам.
что конкретно нужно то?