Вы, наверное, ошибаетесь и не установили для любезности -20.
Если вы выполнили команду как обычный пользователь, вместо -x вы получите 0. Для значений> 20 вы получите 20.
Если вы работаете как root, для значений <-20 вы получите -20.
Тестирование как обычный пользователь:
$ nice -n -20 sleep 100
nice: cannot set niceness: Permission denied
# ps ax -o pid,ni,cmd | grep "sleep 100"
26349 0 sleep 100
Тестирование как root:
$ sudo nice -n -200 sleep 100
# ps ax -o pid,ni,cmd | grep "sleep 100"
28118 0 sudo nice -n -200 sleep 100
28119 -20 sleep 100
Лучше использовать модуль подпроцесса .
>>> subprocess.run(["ls", "-l"]) # doesn't capture output
CompletedProcess(args=['ls', '-l'], returncode=0)
Модуль подпроцесса предоставляет более мощные средства для создания новых процессов и получения их результатов; использование этого модуля предпочтительнее использования этой функции.
Но вы можете использовать подстановку строк:
call_with_args = "./script2.py '%s' '%s'" % (str(arg1), str(arg2))
os.system(call_with_args)
>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'