status -p $pidfile -l $lockfile $prog
Это функция оболочки
status()
из/etc/rc.d/init.d/functions
на RHEL/CentOS 6. Она также известна какstatusproc()
в мире Linux From Scratch.Это говорит нам о том, что вы делаете все очень неправильно. Вы путаете специальные вспомогательные функции оболочки, доступные для использования в сценариях System 5
rc
, с обычными интерактивными внешними командами оболочки. Вы пишете скрипты System 5rc
на Ubuntu. И вы используете файлы PID и файлы блокировки.
- Не используйте PID-файлы в качестве бедного мужского отслеживания служб. Не используйте файлы блокировки как бедную мужскую блокировку сервисов. Они совершенно не нужны в Ubuntu Linux версий 14 и 15, где есть upstart и systemd, соответственно. Им не нужны шаткие файлы PID и файлы блокировки. И systemd, и upstart гарантируют, что один и тот же сервис не будет запущен дважды, и оба правильно отслеживают идентификаторы процессов сервисов, потому что они изначально развивают эти процессы. Что приводит меня к следующему:
- Не пишите скрипты System 5
rc
в Ubuntu Linux. В 14-й версии уже был upstart; а в 15-й версии теперь есть systemd, как в CentOS 7, RHEL 7 и Debian 8. Уже давно не было веской причины писать скрипты System 5rc
в Ubuntu Linux. И уж точно не стоит начинать оттуда, если вы только что пришли в Ubuntu Linux. Даже если вы начинаете оттуда, потому что (ошибочно) пытаетесь перенести скрипты System 5rc
из CentOS:- Не полагайтесь на функцию
status()
shell в разных операционных системах или даже в разных версиях одной и той же операционной системы. Как уже отмечалось, в LFS она называется по-другому. Ее нет в "новых" функциях поддержки LSB из Fedora от 2009 года. Нет даже обязательногоstatus
System 5rc
действия сценария в Debian Policy Manual, хотя в библиотеке вспомогательных функций оболочки LSB есть (слегка отличающаяся)status_of_proc()
вспомогательная функция.Напишите "файл задания" upstart для версии Ubuntu 14 или "блок обслуживания" systemd для CentOS 7, RHEL 7, Debian 8 или Ubuntu 15. И upstart, и systemd предоставляют команды состояния обслуживания:
initctl status
(с простым shim, названным простоstatus
) иsystemctl status
, соответственно. Для их поддержки в файле задания или служебной единице вам не нужно ничего делать.Further reading
- https://unix.stackexchange.com/a/200281/5132
- FC New Init. 2009. Fedora Project wiki.
- "
status
function". Packaging:SysVInitScript. 2008. Fedora Project wiki.- https://superuser.com/a/912648/38062
- https://unix.stackexchange.com/a/194653/5132
- Lennart Poettering (2013-10-07).
systemctl
. страницы руководства systemd. freedesktop.org.- Джеймс Хант и Клинт Байрум (2014). "Utilities". Upstart Cookbook.
В связи с этим ошибка ; по-видимому, это происходит потому, что xorgxrdp
отсутствует. Использование бэкэнда Xvnc в качестве обходного пути помогло мне:
Установитьtigervnc
:
# apt-get install tigervnc*
При подключении к удаленному рабочему столу выберите «Xvnc» в качестве типа сеанса.