При отключении программы вы должны перенаправить оба выхода куда-нибудь (в / dev / null или в файл журнала) и использовать:
&>/dev/null & ...when bash --version >= 4
или
>/dev/null 2>&1 & ...all shells
вместо просто:
&
... чтобы при запуске ssh не нужно было беспокоиться о stdout, stderr и можно было завершить работу.
nohup не всегда важен (в зависимости от конфигурации оболочки и обработки сигнала hup программы ..., в моем тесте: 'sleep', 'xclock' и 'wine notepad.exe' продолжают работать без nohup). И в ситуациях, когда требуется nohup, обычно лучше использовать screen и tmux.
Предполагая, что bash> = 4, минимальный пример для тестирования поведения отсоединения следующий:
ssh 1.2.3.4 "sleep 10 &" ... exits after 10 seconds
ssh 1.2.3.4 "sleep 10 &>/dev/null &" ... exits immediately
В вашей конкретной ситуации script1 / 2 функция fc_START_WINE_APP из script2 должна быть:
{ DISPLAY=:11.0 wine "$1" &>/dev/null & }
... хорошо работает для значения $ 1 'notepad.exe '... но если вы по какой-то причине все еще хотите nohup, он принимает только одну команду, а у вас есть 2 (настройка отображения и запуск Wine), поэтому вы должны заключить ее в bash:
{ nohup bash -c "DISPLAY=:11.0 wine $1" &>/dev/null & }
У меня нет прямого опыта работы с ним, но похоже, что pCloud монтируется как файловая система FUSE. Файловая система FUSE изначально недоступна для root. Цель состоит в том, чтобы предотвратить смонтированные файловые системы от неприятных вещей (, см. объяснение в FAQ libfuse).
Чтобы предоставить root или другим пользователям доступ к файловой системе FUSE, вы должны смонтировать ее с параметрами -o allow_root
или -o allow_others
. Вам также необходимо раскомментировать/добавить user_allow_other
в /etc/fuse.conf
, иначе ваш пользователь не сможет установить вышеупомянутые параметры.
Ваш опыт может быть таким же, как и у многих других пользователей, озадаченных явно не -неинтуитивным поведением. См., например, этот вопрос по serverfault .
Конечно, поскольку pCloud не имеет открытого исходного кода, на самом деле может не быть ни разрешенных, ни простых способов изменить способ монтирования своего тома.
Очевидно, что root может получить доступ к файловой системе FUSE, поскольку он может выдавать себя за других пользователей. Например:
# sudo -u your_user ls /home/your_user/fuse_mount_point
(, выполненный от имени пользователя root, )должен работать.