Немного поздно, но я тоже только что наткнулся на эту проблему.
Проблема в том, что x0vncserver нуждается в сеансе X для входа в систему для вашего пользователя, поэтому вы должны обеспечить две вещи:
Ваш пользователь должен быть настроен для автоматического входа в систему
Поместите спящий режим в команду ExecStart
, чтобы рабочий стол мог запуститься и войти в систему до того, как служба x0vncserver
попытается запуститься:
ExecStart=/usr/bin/sh -c 'sleep 3 && /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home//.vnc/passwd &'
Сон помог мне, и теперь мой x0vnc
работает.
На самом деле есть несколько способов добиться одного и того же результата. Еще один способ — передать вывод команды последовательности в sed, как показано ниже
squeue -u user_name | sed '1d' | wc -l
Есть много способов сделать это, первый, о котором я подумал, это:
squeue -u user_name | tail -n +2 | wc -l
Из справочной страницы дляtail
:
-n, --lines=[+]NUM output the last NUM lines, instead of the last 10;
or use -n +NUM to output starting with line NUM
Итак, вам -n +2 следует пропустить первую строку.
Вы также можете использовать форму сортировки хвоста:tail +2
Просто так. Вы можете вычесть 1 из вывода wc
echo $(( $(squeue -u user_name|wc -l)-1 ))
или
squeue -u user_name|wc -l|awk '{print $0-1}'
Когда вы используете awk, вы можете подсчитывать строки с помощью awk и избегать использования wc
squeue -u user_name|awk 'END{print NR-1}'
END означает, что следующий блок выполняется после того, как все строки будут прочитаны, а NR означает количество строк, прочитанных до сих пор.